Karate 空手道Intuit:如何验证动态json数组
我用空手道已经有一段时间了,但我一直被困在如何验证这个动态数组上。当我点击API时,数组大小不同 如何逐一检查阵列并验证价格 JSON:Karate 空手道Intuit:如何验证动态json数组,karate,intuit,Karate,Intuit,我用空手道已经有一段时间了,但我一直被困在如何验证这个动态数组上。当我点击API时,数组大小不同 如何逐一检查阵列并验证价格 JSON: { "data": { "apple": [ { "a": 0, "price": 1970, "date": "2018-05-30" }, {
{
"data": {
"apple": [
{
"a": 0,
"price": 1970,
"date": "2018-05-30"
},
{
"a": 1,
"price": 1266,
"date": "2018-05-31"
},
{
"a": 2,
"price": 1422,
"date": "2018-06-01"
}
]
},
"status_code": 200
}
你知道语法吗
我能够通过数据驱动的方法做到这一点 在Assertions.feature文件中,我的代码是:
Scenario:
* match __arg contains { a: '#(__arg.a)', price: '#(__arg.price)', date: '#(dataBaseResult[__loop].date)' }
注意:
嘿,谢谢你的快速回答,但问题是我不想做静态验证。我在java中有一个函数,它将查询数据库中的特定日期并获取价格(我知道如何在空手道中使用此函数,但如何在这个动态大小的数组中使用此函数),这正是我想要的validate@KarthikRavi我看不出这个问题。只使用数组索引
*match response.data.apple[0]
等等?嘿,这很好,但我不想像*match response.data.apple[0]那样一个接一个地做,然后在那之后*match response.data.apple[1]等等。有没有可能让一个循环通过数组并验证?@KarthikRavi你的问题非常不清楚,对不起。但是,是的,你可以做各种各样的疯狂,你为什么不通过这些例子:Karthik,你能想出一种方法来做到这一点吗?
# work on the second item in the array
* def index = 1
* def second = response.data.apple[index]
* match second.price = 1266
Feature: my test
Scenario:
* def response =
"""
{
"data": {
"apple": [
{
"a": 0,
"price": 1970,
"date": "2018-05-30"
},
{
"a": 1,
"price": 1266,
"date": "2018-05-31"
},
{
"a": 2,
"price": 1422,
"date": "2018-06-01"
}
]
},
"status_code": 200
}
"""
* def va = call read('classpath:karate/examples/Assertions.feature') response.data.apple
Scenario:
* match __arg contains { a: '#(__arg.a)', price: '#(__arg.price)', date: '#(dataBaseResult[__loop].date)' }