【问题标题】:Calculated value presented as a Response Time in JMeter report计算值在 JMeter 报告中显示为响应时间
【发布时间】:2017-09-20 15:36:01
【问题描述】:

有一个系统,实体会随着时间改变其状态。

我正在创建一个 JMeter 测试来测量两个后续状态之间经过的时间。

似乎没有直接的方式将此信息包含到报告中。

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

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

或者只是计算增量(这只是将值放入“响应数据” - 不会影响报告):

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

这些方法都不行。

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

我是 JMeter 新手,工具箱中的工具太少。任何人都可以提出实现目标的方法吗?谢谢!

【问题讨论】:

    标签: jmeter


    【解决方案1】:

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

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

    1. 将 JSR223 PostProcessor 添加为 Sampler 的子项,您要修改哪个响应时间
    2. 将以下代码放入“脚本”区域:

      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 文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      相关资源
      最近更新 更多