Karate 匹配-组合来自API的值

Karate 匹配-组合来自API的值,karate,Karate,我正在比较两个api,因为api 2中的一个值是来自api1的两个值的组合 上述方法似乎不起作用 我试着用concat使用javascript,但问题是一样的 感谢您的帮助 匹配x包含y可用于x和y的类型。如果这两个是array类型,则contains表示数组x包含数组y的所有值 例如: * def a2Company = get a2Names $..companyName //["TEST ABC"] * def a1Company1 = get a1Names $..companyName

我正在比较两个api,因为api 2中的一个值是来自api1的两个值的组合

上述方法似乎不起作用 我试着用concat使用javascript,但问题是一样的


感谢您的帮助

匹配x包含y可用于
x
y
的类型。如果这两个是
array
类型,则contains表示数组
x
包含数组
y
的所有值

例如:

* def a2Company = get a2Names $..companyName //["TEST ABC"]
* def a1Company1 = get a1Names $..companyName1 //["TEST"]
* def a1Company2 = get a1Names $..companyName2 //["ABC"]
* def a1Company = a1Company1 + a1Company2 // ["TEST"]["ABC"]
* match a2Company contains a1Company1 // this fails  
    Scenario: Contains with arrays
    * def x = ["test", "abc"]
    * def y = ["test"]
    * def z = ["abc"]
    * match x contains y
    * match x contains z
如果
x
y
是字符串,那么contains表示字符串
y
可以在
x
中找到,
x
包含
y
。这有意义吗

例如:

* def a2Company = get a2Names $..companyName //["TEST ABC"]
* def a1Company1 = get a1Names $..companyName1 //["TEST"]
* def a1Company2 = get a1Names $..companyName2 //["ABC"]
* def a1Company = a1Company1 + a1Company2 // ["TEST"]["ABC"]
* match a2Company contains a1Company1 // this fails  
    Scenario: Contains with arrays
    * def x = ["test", "abc"]
    * def y = ["test"]
    * def z = ["abc"]
    * match x contains y
    * match x contains z
你试着把这些东西混在一起。您有数组,但希望对数组值应用字符串包含。这是行不通的,因为空手道不知道要将包含的值应用于单值数组的值

解决办法可以是:

  Scenario: Contains with string
    * def x = "test abc"
    * def y = "test"
    * def z = "abc"
    * match x contains y
    * match x contains z

这对您有帮助吗?

如果您能提供一个代表您的用例并演示您的问题的运行示例,我将不胜感激。我猜你解释了
match。。包含…
,因为
字符串包含,但它不包含。看起来您试图将
contains
应用于字符串
测试ABC
和数组
['TEST']['ABC']
。对吗?我想你是对的。。我试着将company1和company2定义为字符串,但仍然无法进行比较如果您正在查找字符串包含,也许这对您有所帮助。我查找了它,它似乎适用于空手道的0.9.2版本。。。我使用的是0.9.2…什么应该起作用?字符串包含什么?你到底是什么意思?