【问题标题】:How can I create a new unique name jmeter.log file each time a CLI command is run?每次运行 CLI 命令时,如何创建一个新的唯一名称 jmeter.log 文件?
【发布时间】:2022-01-10 10:01:39
【问题描述】:

每当我从 CLI 运行新的 jmeter 命令时,都会生成一个新的 jmeter.log 文件,并且我会丢失之前测试运行写入的内容。

例子:

首先我运行测试脚本:

jmeter -n -p .\config.properties -t .\path\to\jmeterScripFile.jmx -l .\path\to\jmeterScriptOutputFile.jtl

这会生成一个新的 jmeter.log 文件。

然后我运行这个命令来生成一个 HTML Dashboard 报告:

jmeter -g  .\path\to\jmeterScriptOutputFile.jtl  -o .\path\to\TestResults\ReportHTML

第二条命令会覆盖之前的 jmeter.log 文件内容。

我希望每个 jmeter CLI 命令生成一个唯一的 .log 文件。 类似 jmeter-yyyymmdd-hhMMss

我怎样才能做到这一点?

【问题讨论】:

    标签: jmeter jmeter-logging


    【解决方案1】:
    1. 您可以使用-j command-line argumentlike 覆盖默认的jmeter.log 文件名

      jmeter -j your-custom-log-name-here.log -n -t .....
      

      时间戳可以通过您的操作系统添加

    2. 如果您想永久更改并且不想通过-j 命令行参数提供新的日志文件名,您可以通过log4j2.xml file 修改日志文件前缀

      改变这一行:

      <File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
      

      类似于:

      <File name="jmeter-log" fileName="jmeter-${date:yyyyMMdd-hh-mm-ss}.log" append="false">
      

      更多信息:How to Configure JMeter Logging

    【讨论】:

      【解决方案2】:

      JMeter 命令行选项-j 将允许您指定 jmeter 日志文件。文件名可以动态设置。如果您在 Mac 上,$(date +%Y%m%d-%H%M%S) 可用于获取时间戳。

      -j [JMeter 运行日志文件的名称]。

      List of command line options

      您可以在 jmeter 日志文件中使用以下带有当前时间戳后缀的命令。日志文件将在您的 JMETER_HOME/bin 文件夹中创建。

       ./jmeter -n -t TestPlan-Basic-Test.jmx -j jmeter-$(date +%Y%m%d-%H%M%S).log -l test-result.csv
      

      类似的也可以用于寡妇。 link

      【讨论】:

        【解决方案3】:

        你可以按照这个简单的例子在这里的日期生成现在的日期:

        jmeter -g  ./path/to/"`date`".jtl  -o ./path/to/TestResults/ReportHTML
        

        额外: 如果你想用下划线分隔日期,你可以使用这个

        DN="`date`"
        DATE_NOW=${DN// /_}
        jmeter -g  ./path/to/$DATE_NOW.jtl  -o ./path/to/TestResults/ReportHTML
        

        PS:别忘了对其他命令做同样的事情。

        日期示例类似于 Sun_Dec__5_00:55:38_WCAST_2021

        【讨论】:

          最近更新 更多