首页 文章

计算值在JMeter报告中显示为响应时间

提问于
浏览
0

有一个系统,实体随着时间的推移改变其状态 .

我正在创建一个JMeter测试,测量两个后续状态之间的时间 .

似乎没有直接的方法将此信息包含在报告中 .

到目前为止,我尝试了 BeanShell Sampler ,它接受时间戳作为参数并创建 SampleResult

long start = Long.parseLong(vars.get("containerCreatedTime"));
long end = Long.parseLong(vars.get("containerStartedTime"));
SampleResult.createTestSample(start, end);

或者只是计算delta(这个只是将值放到'Response data' - 不影响报告):

Long.parseLong(vars.get("containerStartedTime")) - Long.parseLong(vars.get("containerCreatedTime"));

任何这些方法都没有运气 .

我基本上需要的是用计算值调整采样器的采样时间(响应时间) .

我是JMeter的新手,工具箱中的工具太少了 . 谁能提出实现目标的方法?谢谢!

1 回答

  • 1

    由于JMeter 3.1 it is recommended to use Groovy for any form of scripting in JMeter所以考虑切换到JSR223元素 .

    如果您需要修改Sampler的响应时间,我建议您通过JSR223 PostProcessor进行修改

    • 将JSR223 PostProcessor添加为Sampler的子级,您要修改的响应时间

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

    def delta = (vars.get('containerStartedTime') as long) - (vars.get("containerCreatedTime") as long)
    java.lang.reflect.Field elapsed = prev.getClass().getDeclaredField('elapsedTime')
    elapsed.setAccessible(true)
    elapsed.set(prev, delta)
    

    有关在JMeter测试中使用Groovy脚本的更多详细信息,请参阅Apache Groovy - Why and How You Should Use It文章 .

相关问题