JSON断言-声明多个响应值

时间:2019-02-08 07:03:19

标签: json jmeter assertion

{
                "id": 280,
                "name": "Kru",
                "description": "alphabetic description",
                "status": 2,
                "condition_type": "1",
                "created_at": "2019-02-05T14:43:04.000Z",
                "updated_at": "2019-02-05T14:43:04.000Z"
            },
            {
                "id": 25,
                "name": "Krut",
                "description": "abckdk eje  jw s",
                "status": 1,
                "condition_type": "0",
                "created_at": "2019-02-05T11:11:02.000Z",
                "updated_at": "2019-02-05T11:11:02.000Z"
            }

我正在尝试断定JSON响应。如果响应的状态值分别为1和2,则我的测试用例通过,否则失败。现在,我一次只能声明一个值。我如何断言两个值?先感谢您。 JSON assertion I implemented

2 个答案:

答案 0 :(得分:0)

  1. JSR223 Assertion添加为返回上述JSON的请求的子代
  2. 将以下代码放入“脚本”区域:

    com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), '$..status').each { status ->
        if (!(1..2).contains(status)) {
            AssertionResult.setFailure(true)
            AssertionResult.setFailureMessage('Comparison failed, got: ' + status)
        }
    }
    
  3. 就是这样,上面的代码将验证每个status值,并评估它是否在12之间。如果出现意外状态,则断言scope中的相关采样器将被标记为失败:

    enter image description here

    请参阅Scripting JMeter Assertions in Groovy - A Tutorial文章,以获取有关JMeter中基于代码的断言概念的更多信息。

答案 1 :(得分:0)

enter image description here

我正好需要你最近解释的内容, 所以我一直在玩它,这 ^ 对我有用:) (当然是订单问题)