首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用JMeter用一个动态字段验证整个JSON

如何用JMeter用一个动态字段验证整个JSON
EN

Stack Overflow用户
提问于 2019-03-29 11:24:14
回答 2查看 345关注 0票数 0

我在JSR223中有一个JMeter断言,它验证整个JSON响应及其工作。问题是,每次我在DB中插入数据时,JSON字段中的一个更改和验证都会失败。

如何从响应验证中跳过这个动态字段?

响应JSON示例:

代码语言:javascript
运行
复制
[
  {
    "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断言:

代码语言:javascript
运行
复制
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“字段

知道吗?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-29 15:25:06

如果您对这个id字段不感兴趣--只需从预期变量和实际响应中删除,就可以修改断言的前2行如下:

代码语言:javascript
运行
复制
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')}

更多信息:

演示:

票数 2
EN

Stack Overflow用户

发布于 2019-03-29 13:08:56

如果不关心id字段的值,则可以直接使用regex匹配器通过指定jsonpath和检查匹配作为regex使用regex使用regex来使用json断言检查字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55416405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档