有一个系统,实体会随着时间的推移改变其状态。
我正在创建一个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的新手,工具箱中的工具太少了。谁能提出实现目标的方法?谢谢!
答案 0 :(得分:1)
因为JMeter 3.1 it is recommended to use Groovy for any form of scripting in JMeter所以考虑切换到JSR223元素。
如果您需要修改Sampler的响应时间,我建议您通过JSR223 PostProcessor
进行操作将以下代码放入“脚本”区域:
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文章。