我想使用 KARATE 框架的数据驱动功能动态设置 JSON 中某些元素的值(从文件中读取)。以下是更多详细信息:
request.json -> { wheels : <wheel>, color: '<color>' }
Run Code Online (Sandbox Code Playgroud)
功能:从文件中读取 json 输入并迭代数据表值
背景:
* url ''
* def reqJson = read('request.json')
* print reqJson
Run Code Online (Sandbox Code Playgroud)
场景大纲:测试文件读取
# I want to avoid writing below set statements for each element in request
#* set reqJson.wheels = <wheel>
#* set reqJson.color = '<color>'
Given path ''
And request reqJson
When method POST
Then status 200
And match response contains {mode: '<result>'}
Examples:
| wheel | color | result | …Run Code Online (Sandbox Code Playgroud) 在下面的 JSON 响应中,我需要为“nationalityDecription”为“USA”的记录提取“cid”。通过使用此查询作为参考,我在空手道功能文件中使用了以下 loc,但第一行本身因语法错误而失败(尝试了不同的组合)。现在,我使用自定义 javascript 作为一种工作正常的解决方法。我需要帮助来检查我是否在语法上遗漏了任何内容。谢谢
回复:
{
"header": {
"Id": "12345678",
"timeStamp": "2018-09-17T10:09:812.000"
},
"dataRecords": [
{
"cid": "31H678",
"cidMeta": "00",
"nationalityDecription": "CHINA"
},
{
"cid": "31S421",
"cidMeta": "01",
"nationalityDecription": "USA"
}
]
}
Run Code Online (Sandbox Code Playgroud)
特征文件:
* def record= $response.dataRecords[?(@.nationalityDecription=='USA')]
* def cid = record.cid
Run Code Online (Sandbox Code Playgroud) karate ×2