JMETER:如何计算两个HTTP采样器之间的差异';s响应(已用)时间值 我已经通过JMETER发送了两个HTTP请求。 测量单个运行时间或响应时间值。 计算两个值之间的差值。

JMETER:如何计算两个HTTP采样器之间的差异';s响应(已用)时间值 我已经通过JMETER发送了两个HTTP请求。 测量单个运行时间或响应时间值。 计算两个值之间的差值。,jmeter,Jmeter,e、 g HTTP采样器-1:测量时间:1000毫秒 HTTP采样器-2:测量时间:800毫秒 计算差值:1000-800=200 ms 这两个采样器必须执行多次 我正在考虑的解决方案是使用Sampler Data Writer listener,以便在csv文件中写入经过的时间值。 最后使用VBA脚本计算差异 您能告诉我这种情况是否有其他解决方案吗?您可以用它来计算动态差异 使用以下代码将Beanshell后处理器元素添加为HTTP Sampler 1的子元素: long request1

e、 g

  • HTTP采样器-1:测量时间:1000毫秒
  • HTTP采样器-2:测量时间:800毫秒
  • 计算差值:1000-800=200 ms
这两个采样器必须执行多次

我正在考虑的解决方案是使用Sampler Data Writer listener,以便在csv文件中写入经过的时间值。 最后使用VBA脚本计算差异

您能告诉我这种情况是否有其他解决方案吗?

您可以用它来计算动态差异

使用以下代码将Beanshell后处理器元素添加为HTTP Sampler 1的子元素:

long request1 = prev.getTime(); // get HTTP Sampler 1 execution time
vars.put("sampler1", String.valueOf(request1)); // store execution time to "sampler1" variable
并对HTTP采样器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();
或者计算所有请求的平均差异

有关ApacheJMeter中Beanshell脚本的全面信息,请参阅指南