Jmeter获取当前Sample的响应时间,Loadtime 和Latency的区别

概要:Jmeter的响应时间可以通过结果数和聚合报告查看,但是如果想知道某个sample的请求的响应时间和响应的具体数据 并打印出来如何实现呢?测试过程中会有这样的需求,大量并发的时候需要打印响应内容比如sendID ,响应时间,这样就可以很直观的看到某个订单的响应时间是多少,方便排查性能问题。

在某个接口下新增一个后置处理器。  
jmeter默认会初始化SampleResult类,jmeter里面的类大部分都是从Object 扩展而来。  
在beanShell脚本编辑器中,直接通过prev.getUrlAsString();获取接口的url路径。  
prev代表当前的接口。

1.获取响应码  

System.out.println(prev.getResponseCode());//获取响应码

2.获取响应的具体数据 response Data

System.out.println(prev.getResponseDataAsString());//获取响应数据

3.获取连接时间

System.out.println(prev.getConnectTime().toString()); //获取连接时间

5.如何获取LoadTime 即响应时间?

查看官方接口 里面的方法 发现没有直接获取LoadTime 的方法

SampleResult (Apache JMeter dist API)《Jmeter获取当前Sample的响应时间,Loadtime 和Latency的区别》https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html但是可以通过获取开始时间和结束时间并相减获取

//get startTime 和 endTime 都是Long类型 具体看上述连接的方法

long ResponseTime =  prev.getEndTime() – prev.getStartTime();

System.out.println(“33==”+ ResponseTime);//将结果打印到控制台

《Jmeter获取当前Sample的响应时间,Loadtime 和Latency的区别》

 

《Jmeter获取当前Sample的响应时间,Loadtime 和Latency的区别》

 另外从结果树,sampler result 可以看到 Loadtime Latency 这两个时间,我们平时说的响应时间

Response time = sample time= Load time = Elapsed time >= latency

即:响应时间=采样时间=加载时间=耗时时间 是发送请求的时间和完全接收的时间之间的差值,

所以响应时间>=延迟时间即Latency   响应数据越多,响应时间和延迟之间的差异越大。

《Jmeter获取当前Sample的响应时间,Loadtime 和Latency的区别》

 

    原文作者:一缕晨光~
    原文地址: https://blog.csdn.net/baidu_41614347/article/details/121292498
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞