首页 > 解决方案 > 如何使用 JMeter 验证具有 1 个动态字段的整个 JSON

问题描述

我在 JMeter 中有一个 JSR223 断言,可以验证整个 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”字段

任何的想法?

提前致谢

标签: jsongroovyjmeter

解决方案


如果您对此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')}

更多信息:

演示:

在此处输入图像描述


推荐阅读