JMeter MergeResults无法正确处理timeStamp标签毫秒

问题描述

创建了两个虚拟样本项目(dummy1.jmx和dummy2.jmx),并在以下命令中使用认设置(JMeter 5.3认安装并安装了所有必需的插件)执行。

  1. #> jmeter.bat -n -t dummy1.jmx -l dummy1.csv -j dummy1-jmeter.log 执行加载

    生成的报告和时间戳在仪表板和图形中看起来都很完美

    **#> jmeter.bat -g dummy1.csv -o dummy1 -j dummy1-report-jmeter。

dummy1 html report

  1. #> jmeter.bat -n -t dummy2.jmx -l dummy2.csv -j dummy2-jmeter.log 执行加载

    生成的报告和时间戳在仪表板和图形中看起来都很完美

    #> jmeter.bat -g dummy2.csv -o dummy2 -j dummy2-report-jmeter.log

dummy2 html report

  1. 使用MergeResults插件将上述CSV文件合并为一个文件生成HTML报告

    #> JMeterPluginsCMD.bat --generate-csv dummy1-dummy2.csv --input-jtl merge.properties --plugin-type MergeResults

    找到的合并的timeStamp标签无效,并且生成的报告显示无效的DateTime。

    #> jmeter.bat -g dummy1-dummy2.csv -o merged -j merged-report-jmeter.log

Merged Report

这是一个错误还是我缺少配置?甚至将 jmeter.save.saveservice.timestamp_format = yyyy / MM / dd HH:mm:ss.SSS 添加到user.properties都没有帮助

merge.properties

inputJtl1=dummy1.csv
prefixLabel1=TEST1:
includeLabels1=.*
excludeLabelsl=
includeLabelRegex1=true
excludeLabelRegex1=
startOffset1=
endOffset1=


inputJtl2=dummy2.csv
prefixLabel2=TEST2:
includeLabels2=.*
excludeLabels2=
includeLabelRegex2=true
excludeLabelRegex2=
startOffset2=
endOffset2=

解决方法

不幸的是,我们不能没有:

  1. 看到您的2000-01-01文件内容
  2. 了解您的期望

同时,我只能告诉您这个private static final long REF_START_TIME = 946681200000L; 日期是哪里来的:

  • 它被声明为here

    res.setTimeStamp(res.getTimeStamp() - startTimeRef + REF_START_TIME);
    
  • 并被添加到原始SampleResult时间戳here

    next/router

我不知道这是一个错误还是设计成这样(尽管从我的理解上来说,从其时间戳中减去采样器开始时间的疯狂逻辑超出了我的理解),最好检查{{3} }

同时,您可以使用JMeter Plugins support forum之类的服务来比较不同的测试运行结果