我已经使用 Karate 有一段时间了,但我一直不知道如何验证这个动态数组。当我使用 API 时,苹果数组的大小会发生变化。
如何逐一遍历数组并验证价格?
JSON:
{
"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
}
最佳答案
我能够通过数据驱动的方法来做到这一点https://github.com/intuit/karate#data-driven-features
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
在 Assertions.feature 文件中,我的代码是:
Scenario:
* match __arg contains { a: '#(__arg.a)', price: '#(__arg.price)', date: '#(dataBaseResult[__loop].date)' }
注意:
- 可以从任何来源提取预期数据。示例:数据库
- 记住“__loop”将给出数组的索引
关于 Karate 直觉 : How to validate dynamic json array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603698/