当我们调用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。 任何人都可以建议。预先感谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
将以下代码放入“脚本”区域:
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') + '"')
}
}
就是这样,如果不匹配,采样器将被标记为失败:
更多信息: