您可以使用Beanshell Post Processors 即时计算差异
使用以下代码添加一个 Beanshell 后处理器元素作为 HTTP 采样器 1 的子元素:
long request1 = prev.getTime(); // get HTTP Sampler 1 execution time
vars.put("sampler1", String.valueOf(request1)); // store execution time to "sampler1" variable
对 HTTP Sampler 2 执行相同的操作。在这种情况下,代码应如下所示:
long request2 = prev.getTime(); // get HTTP Sampler 2 execution time
long request1 = Long.parseLong(vars.get("sampler1")); // get HTTP Sampler 1 execution time from variable
long delta = (request1 - request2); // calculate difference
log.info("Time difference is: " + delta + " ms"); // print difference to jmeter.log file
在 jmeter.log 文件中,您应该会看到类似
2014/07/16 14:00:02 INFO - jmeter.util.BeanShellTestElement: Time difference is: 200 ms
同样你可以将它存储到一个文件中
FileOutputStream out = new FileOutputStream("delta.csv", true);
out.write((String.valueOf(delta)).getBytes("UTF-8"));
out.write(System.getProperty("line.separator").getBytes("UTF-8"));
out.flush();
out.close();
或者计算所有请求的平均差异。
有关 Apache JMeter 中的 Beanshell 脚本的全面信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。