0

场景:5个slave,1个master JMeter环境。Jmeter 项目基本上从列表中获取 url,而 JSR223 采样器具有 web 驱动程序代码来调用 url 并测量每个 url 的总加载时间。

问题陈述:在执行单用户测试时,我可以轻松地将 JSR223 采样器中的函数值输出到 csv 文件并获取结果。但是,在分布式环境中运行相同的测试时,每个节点都会写入自己的 csv 文件,并且从那里汇总结果会很痛苦。有什么帮助吗?

此外,我不能依赖 Jmeter master 中的聚合计算,因为它将是线程的总时间,而我的函数计算确切的渲染时间,这是我感兴趣并写入 csv 的时间。

一些代码 <> while ( javaScriptDriver.executeScript("return window.xx_NumRequests();",new Object[0]) > 0 ) {

    Thread.sleep(100);
}

var endTime = (new Date()).getTime();
var millisecondsLoading = endTime - startTime;
System.out.println( millisecondsLoading);
f = new FileOutputStream("c:\\Jmeter\\result.csv", true);
p = new PrintStream(f);
p.println(report);
p.println(millisecondsLoading);
p.close();
f.close();
driver.quit();

关于在我的环境中运行多个从属设备时如何实现此聚合结果的任何想法?

谢谢。

4

1 回答 1

0

我会推荐以下内容:

  1. 在 WebDriver Sampler 中定义一个 JMeter 变量,即millisecondsLoading

    var vars = org.apache.jmeter.threads.JMeterContextService.getContext().getVariables()
    vars.put('millisecondsLoading',millisecondsLoading)
    
  2. 在所有从属机器上将以下行添加到user.properties文件

    sample_variables=millisecondsLoading
    

在下一个从属 JMeter 引擎启动时,它将向 .jtl 文件添加新列,该文件将保存${millisecondsLoading}变量值,在测试结束时,主控将从从属收集结果文件,您将获得您正在寻找的聚合输出。

参考:

于 2015-10-07T15:38:02.213 回答