javascript - 验证 json 有效负载中元素的值
问题描述
当我们调用 HTTP GET 方法时,API 会返回数据。我想评估特定输入键值的所有返回值是否如 GET URL 中所述。
调用的 URL:HTTP Get 方法。-->
https://dummy.dns.com/Wells/resource?$filter=employee.address eq 'France FR'
API 返回以下响应,
{"next":"https://dummy.dns.com/Wells/resource?$skip=10&$filter=employee.address eq 'France FR'","value":[{"customer.name":"Stefan Peter","customer.landlinePhoneNumber":"97642","employee.country.name":"France","employee.country.id":"FR","employee.address":"France FR","employee.latitude":49,"employee.longitude":7.6,"leave.count":0,"_id":"M1023453","_externalId":"WF3453","_name":"WellsFargo","_employeeType":["contractual"],"_employee":"WF3453","_customer":"M1023453","leave.sickCount":0,"leave.casualCount":0},{"customer.name":"Stefan Peter","customer.landlinePhoneNumber":"97642","employee.country.name":"France","employee.country.id":"FR","employee.address":"France FR Junk","employee.latitude":49,"employee.longitude":7.6,"leave.count":0,"_id":"M1023454","_externalId":"WF3454","_name":"WellsFargo","_employeeType":["contractual"],"_employee":"WF3454","_customer":"M1023454","leave.sickCount":0,"leave.casualCount":0},{"customer.name":"Stefan Peter","customer.landlinePhoneNumber":"97642","employee.country.name":"France","employee.country.id":"FR","employee.address":"France FR","employee.latitude":49,"employee.longitude":7.6,"leave.count":0,"_id":"M1023455","_externalId":"WF3455","_name":"WellsFargo","_employeeType":["contractual"],"_employee":"WF3455","_customer":"M1023455","leave.sickCount":0,"leave.casualCount":0}]}
现在我想验证键值对是否与我在 URL 中作为输入 /query 参数传递的键值对相同。
我使用 JMeter 作为我的客户端来评估 API 功能。要评估的自定义断言是什么。响应是一个数组,它的大小可能会增长到 100 或 200。任何人都可以建议。提前致谢。
解决方案
- 添加JSR223 断言作为返回上述响应的 HTTP 请求采样器的子级
将以下代码放入“脚本”区域:
new groovy.json.JsonSlurper().parse(prev.getResponseData()).value.each { entry -> if (!entry.get('employee.address').equals('France FR')) { AssertionResult.setFailure(true) AssertionResult.setFailureMessage('Expected "France FR", got "' + entry.get('employee.address') + '"') } }
就是这样,如果不匹配,采样器将被标记为失败:
更多信息:
推荐阅读
- spring-mvc - Spring Security 中的 X-DownloadOptions 、 X-WebKit-CSP 和 Access-Control-Allow-Origin 安全标头
- mysql - MySQL锁混乱
- javascript - Discord.js const guild = member.guild;
- php - CKeditor文件上传错误上传
- jenkins - 从 Jenkinsfile 中提取参数
- angular - 如何处理 API 服务中的 HTTP 错误并仅在成功的情况下通过 Observable 返回响应?
- spring - Whitelabel 错误页面只是在 URL 上输入?
- android - 类型'int'不是Dart中类型'String'错误的子类型
- php - 如何在 GraphQL 中返回自定义错误
- php - Laravel 5.6 - “试图获取非对象的属性”