如何定制Jmeter采样时间?

如何定制Jmeter采样时间?,jmeter,jmeter-5.0,Jmeter,Jmeter 5.0,我正在使用JMeter5.1进行应用程序API性能测试。根据我的业务逻辑,我不应该从Jmeter获取采样时间。相反,我需要获取响应体中可用的经过时间,并将其传递给Jmeter作为采样时间,然后我可以使用Jmeter采样时间。如何自定义Jmeter采样时间 或 如何在摘要/聚合报告中添加我的响应的延迟时间 我的响应有效载荷: { "a": "res1", "b":"res2", "elapsedTime&qu

我正在使用JMeter5.1进行应用程序API性能测试。根据我的业务逻辑,我不应该从Jmeter获取采样时间。相反,我需要获取响应体中可用的经过时间,并将其传递给Jmeter作为采样时间,然后我可以使用Jmeter采样时间。如何自定义Jmeter采样时间

如何在摘要/聚合报告中添加我的响应的延迟时间

我的响应有效载荷:

{
"a": "res1",
"b":"res2",
"elapsedTime":"25"
} 

您可以使用响应中的值覆盖JMeter的内部度量,如下所示:

  • 添加为返回上述响应的请求的子级

  • 将以下代码放入“脚本”区域:

  • 就是这样,父采样器经过的时间将更改为响应中的时间

  • 更多信息:

  • 将JSR223后处理器添加为返回上述响应的请求的子级

  • 将以下代码放入“脚本”区域:

    导入groovy.json.*

    def response=prev.getResponseDataAsString()
    def json=new JsonSlurper().parseText(响应); def elapsedTime=json.elapsedTime,长度相同; org.apache.commons.lang3.reflect.FieldUtils.writeField(prev,“elapsedTime”,elapsedTime,true)

  • 您可以在所有报告中看到响应的elapsedTime反射


  • 谢谢@Dimitri,我参考了您的回复

    @Dimitri谢谢您的回复。我已经遵循了步骤1和2。但我并没有在表的采样时间结果中看到我的运行时间。请帮帮我,真的吗?以下是该方法有效的证据:。如果它不适合你-检查任何可疑的条目。谢谢,我通过引用你的回复找到了答案
    prev.elapsedTime = new groovy.json.JsonSlurper().parse(prev.getResponseData()).elapsedTime as Long