首页 > 解决方案 > 如果值相同但Jmeter中的序列发生变化,如何管理响应断言

问题描述

我收到了回复,假设 {"profiles":{"HLS_1200":[{"profile_id":38,"quality_id":11}],"ADAPTIVE" {"L","XL","XXL"},现在,每次我们点击 API 时,响应都是相同的,但顺序正在改变,因此资产正在失败。下次我会收到类似 {"profiles":{"HLS_1200":[{"profile_id":38,"quality_id":11}],"ADAPTIVE" {"XL","L","XXL"} ,我想通过这个响应断言,即使顺序改变了。

标签: apijmeterperformance-testingjmeter-5.0

解决方案


选择执行“深度扫描”并且不关心属性顺序的JSONAssert库

  1. 获取以下库并将它们拖放到JMeter Classpath

  2. 重新启动 JMeter 以获取库

  3. 添加JSR223 断言作为返回 JSON 的请求的子项

  4. 将以下代码放入“脚本”区域:

    def expected = '{\n' +
            '  "profiles": {\n' +
            '    "HLS_1200": [\n' +
            '      {\n' +
            '        "profile_id": 38,\n' +
            '        "quality_id": 11\n' +
            '      }\n' +
            '    ],\n' +
            '    "ADAPTIVE": [\n' +
            '      "L",\n' +
            '      "XL",\n' +
            '      "XXL"\n' +
            '    ]\n' +
            '  }\n' +
            '}'
    
    org.skyscreamer.jsonassert.JSONAssert.assertEquals(expected, prev.getResponseDataAsString(), false)
    

更多信息:


推荐阅读