json - 如何使用 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”字段
任何的想法?
提前致谢
解决方案
如果您对此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')}
更多信息:
演示:
推荐阅读
- sqlite - 使用 EXCEPT SQLite 命令删除除一行之外的所有行
- python - Pandas 数据框合并/连接返回 NaN
- error-handling - 在 graphql 中执行多个突变时的正确错误处理
- opencv - “[WARN:0] 全局 SourceReaderCB::~SourceReaderCB 终止异步回调”警告
- javascript - 根据不同的参数从数组中查询多个对象并返回所有对象的总数
- ruby - Rails 4 Delayed_job 错误 - 作业加载失败:未定义的类/模块 CustomJob
- windows - 在多个屏幕中打开 putty 并加载 uid 和 pwd 的批处理脚本
- css - 语义反应/背景图像和高度 100 vh
- php - 无论设置如何,PHP 会话都会注销
- r - 使用回归预测的对数变化值来预测未来价格