如何在jmeter中只验证JSON响应值的一部分
响应JSON包含如下字段: “时间表时间戳”:“2017-07-23T18:02:37.000Z” 我需要做的是声明如下:如何在jmeter中只验证JSON响应值的一部分,json,jmeter,assertion,Json,Jmeter,Assertion,响应JSON包含如下字段: “时间表时间戳”:“2017-07-23T18:02:37.000Z” 我需要做的是声明如下: Verify $.data.scheduledTimestamp contains "2017-07-23T18:02:37" (忽略毫秒值) 我尝试了以下响应断言: Text Response - checked Contains - checked Pattern To Test - "scheduledTimestamp":"${con_res_date}(.+?
Verify $.data.scheduledTimestamp contains "2017-07-23T18:02:37"
(忽略毫秒值)
我尝试了以下响应断言:
Text Response - checked
Contains - checked
Pattern To Test - "scheduledTimestamp":"${con_res_date}(.+?)"
其中con\u res\u date
=2017-07-23T18:02:37
但断言仍然失败。根据:
模式可以是:
- “等于”或“子字符串”子句的“字符串”
- “Contains”或“Matches”子句的“Perl5样式”正则表达式
- 模式匹配规则:
子字符串
- 要测试的模式:
scheduledTimestamp:“${con_res_date}
- “等于”或“子字符串”子句的“字符串”
- “Contains”或“Matches”子句的“Perl5样式”正则表达式
- 模式匹配规则:
子字符串
- 要测试的模式:
scheduledTimestamp:“${con_res_date}
assert
关键字不会使采样器失败,您需要使用类似以下内容:if(!json.data.scheduledTimestamp.startsWith(vars.get('con_resu_date')){AssertionResult.setFailure(true)}
。有关更多信息,请参阅指南。我需要验证计划时间戳是否为该值,同时忽略其中的毫秒值。我已通过以下步骤完成此操作:1.添加JSR223断言而不是响应断言2.在JSR223断言中,提供了以下代码行的import groovy.json.*;def Response=prev.getResponseDataAsString();def json=new JsonSlurper().parseText(响应);assert json.data.scheduledTimestamp.startsWith(“${con_res_date}”)'永远不要将JMeter变量内联到groovy脚本中,因为这可能会导致编译错误。此外,它会破坏groovy脚本功能。此外,assert
关键字不会使采样器失败,您需要使用类似以下内容:if(!json.data.scheduledTimestamp.startsWith(vars.get('con_res_date')){AssertionResult.setFailure(true)}
。有关更多信息,请参阅指南。