小编nag*_*pai的帖子

如何在从空手道文件读取的json中动态设置值

我想使用 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)

karate

3
推荐指数
1
解决办法
5634
查看次数

从空手道中的json数组中提取数据

在下面的 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

1
推荐指数
1
解决办法
3902
查看次数

标签 统计

karate ×2