我在JSR223中有一个JMeter断言,它验证整个JSON响应及其工作。问题是,每次我在DB中插入数据时,JSON字段中的一个更改和验证都会失败。
如何从响应验证中跳过这个动态字段?
响应JSON示例:
[
{
"id": "273444",
"trxDateTime": "2019-03-25T22:38:16Z",
"merchantName": "MerchECOM1",
"merchantTransId": "1r1vXue4qn",
"trxType": "Payment",
"paymentBrand": "MasterCard",
"amount": 20.00,
"currencyCode": "AUD",
"status": "Declined",
"statusResponseMessage": null,
"customerAccount": "123456"
}
]
JSR223断言:
def expected = new groovy.json.JsonSlurper().parseText(vars.get('expected1'))
def actual = new groovy.json.JsonSlurper().parse(prev.getResponseData())
if (expected != actual) {
AssertionResult.setFailure(true)
AssertionResult.setFailureMessage('Mismatch between expected and actual JSON')
}
就这样,我无法验证动态"id“字段
知道吗?
提前感谢
发布于 2019-03-29 15:25:06
如果您对这个id
字段不感兴趣--只需从预期变量和实际响应中删除,就可以修改断言的前2行如下:
def expected = new groovy.json.JsonSlurper().parseText(vars.get('expected1')).each {entry -> entry.remove('id')}
def actual = new groovy.json.JsonSlurper().parse(prev.getResponseData()).each {entry -> entry.remove('id')}
更多信息:
演示:
发布于 2019-03-29 13:08:56
如果不关心id字段的值,则可以直接使用regex匹配器通过指定jsonpath和检查匹配作为regex使用regex使用regex来使用json断言检查字段。
https://stackoverflow.com/questions/55416405
复制相似问题