如何在jmeter中只验证JSON响应值的一部分

如何在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}(.+?

响应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}(.+?)"
其中
con\u res\u date
=
2017-07-23T18:02:37

但断言仍然失败。

根据:

模式可以是:

  • “等于”或“子字符串”子句的“字符串”
  • “Contains”或“Matches”子句的“Perl5样式”正则表达式
因此,您需要修改配置,如下所示:

  • 模式匹配规则:
    子字符串
  • 要测试的模式:
    scheduledTimestamp:“${con_res_date}
根据:

模式可以是:

  • “等于”或“子字符串”子句的“字符串”
  • “Contains”或“Matches”子句的“Perl5样式”正则表达式
因此,您需要修改配置,如下所示:

  • 模式匹配规则:
    子字符串
  • 要测试的模式:
    scheduledTimestamp:“${con_res_date}

您是否尝试了scheduledTimestamp“${con_res_date}?您是否尝试了scheduledTimestamp“${con_res_date}?我需要验证scheduledTimestamp是否为此,并忽略其中的毫秒值。我已通过以下步骤完成此操作: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_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)}
。有关更多信息,请参阅指南。