【问题标题】:How to verify substring in a field in array based on condition如何根据条件验证数组中字段中的子字符串
【发布时间】:2018-12-06 11:12:32
【问题描述】:

在空手道中做事总是有多种方法,这是我能够想到的,但不幸的是,我正在尝试做的事情也不起作用。希望有另一种方法。

现在我们想要的是我们有一个数组的响应,然后我们只想验证某些字段,根据 id 值,事件字符串会有所不同,我们必须验证事件中的子字符串特定的 ID。

第一个示例有效,因为它不是检查子字符串而是检查完整的字符串。第二种情况在我正在执行 substring 的正则表达式以匹配的情况下不起作用。如果不支持,还有其他替代方法吗?

场景:匹配完整的字符串工作(Working

* def response = [{id:1 , "event":"some data abc something"},{id:2 , "event":"some xyz something"},{id:3 , "event":"some 123 something"},{id:4 , "event":"some 567 something"}]

* def verify = [{id:2, "event" : "some xyz something"},{id:4, "event" : "some 567 something"}]

* match response contains verify

场景:通过正则表达式匹配无法检查子字符串(不起作用

  * def response = [{id:1 , "event":"some data abc something"},{id:2 , "event":"some xyz something"},{id:3 , "event":"some 123 something"},{id:4 , "event":"some 567 something"}]

  * def verify = [{id:2, "event" : "#regex (?i)(xyz)"},{id:4, "event" : "#regex (?i)(567)"}]

  * match response contains verify

【问题讨论】:

    标签: karate


    【解决方案1】:

    试试这个:

    * def verify = [{id:2, "event" : "#regex (?i).*xyz.*"},{id:4, "event" : "#regex (?i).*567.*"}]
    

    【讨论】:

    • 谢谢。这行得通。您建议的任何其他替代方法
    • 完成。对此感到抱歉。
    • @SauravKumar 我认为这是您给出的案例中最简单的。对于复杂的情况,karate.filter() 可能很有用。所以两个步骤,首先过滤并分配给一个变量。然后检查你是否有任何东西(大小> 0):github.com/intuit/karate#json-transforms
    猜你喜欢
    • 2020-12-23
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多