如何访问JsonPath数组结果的值(空手道断言)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何访问JsonPath数组结果的值(空手道断言)相关的知识,希望对你有一定的参考价值。

我从API的JSON响应:


    "args": 
        "param1": "valueA",
        "param2": "valueB"
    


我的空手道断言:

# ✅
And match response.args.param1 == "valueA"

# ❌ actual: ["valueB"], expected: "valueB"
And match $..param2 == "valueB"

# ❌ actual: [2], expected: 2, reason: not equal (JSONArray : Integer)
And match $..args.length() == 2

对于this answer,我知道当我使用JsonPath通配符时,总是返回一个数组。所以我的问题是我该如何访问该数组的第一个也是唯一的元素以用于断言?我尝试附加[0],但是没有用。

答案

JsonPath总是返回一个数组,因为它是一个“搜索”。因此,当您执行..*时-就是这样。您必须按索引提取:

* match response..param1 == ['valueA']
* def temp = $..param1
* match temp[0] == 'valueA'

以上是关于如何访问JsonPath数组结果的值(空手道断言)的主要内容,如果未能解决你的问题,请参考以下文章

如何从场景大纲中获取一列的值作为空手道中的数组

空手道-如何使用从响应数组接收的值循环Soap请求

如何在加特林中断言另一个文件中的值

JMeter断言之JSON断言

jmeter--使用jsonpath来实现变量参数 以及自动化测试

JSON Assertion(JSON断言)