api - 如果值相同但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"} ,我想通过这个响应断言,即使顺序改变了。
解决方案
选择执行“深度扫描”并且不关心属性顺序的JSONAssert库
获取以下库并将它们拖放到JMeter Classpath:
重新启动 JMeter 以获取库
添加JSR223 断言作为返回 JSON 的请求的子项
将以下代码放入“脚本”区域:
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)
更多信息:
推荐阅读
- php - 如何在 laravel eloquent 中使用 where() 和数组
- python - 自动化 Instagram 点赞
- c++ - 为什么tellg() 在代码末尾返回-1?
- swiftui - 标签在 SwiftUI 中的作用是什么?
- android - 在 React Native 0.59 上将目标 sdk 升级到 29
- node.js - 我在服务器端有一系列问题和答案。如何在点击时在 EJS 模板中一一呈现这些?
- swift - Ios url 使用 url 方案在点击时重定向到应用程序
- karate - 如何将 json 响应转换为匹配模式(不是手动)?
- capl - CAPL中是否有类似No response之类的功能
- python - AWS beanstalk 上的 Python Flask 给出 502 网关错误