【问题标题】:Jmeter - Run .jmx file through command line and get the summary report in a excelJmeter - 通过命令行运行 .jmx 文件并在 Excel 中获取摘要报告
【发布时间】:2014-08-23 15:06:02
【问题描述】:

我是 jmeter 的新手。我有 .jmx 文件,其中包含所有必需的 http 采样器。我可以使用“Run-> Start”在 Jmeter UI 中运行它,并在“Summary Report”中查看结果。然后我可以使用“摘要报告”中的“保存表数据”按钮将结果保存到 .csv。

问题是我怎样才能使用命令行实现同样的效果。

【问题讨论】:

  • 您无法从 JMeter 获得直接的 excel 输出,但如果您使用类似 CSV 的输出格式(而不是 XML),您可以将其导入 excel。只是不要忘记在 CSV 中包含标题以避免以后混淆。

标签: command jmeter


【解决方案1】:

JMeter 可以在非 GUI 模式下启动,如下所示:

jmeter -n -t /path/to/your/test.jmx -l /path/to/results/file.jtl

您可以通过玩 JMeter 属性来设置您希望在结果 jtl 文件中看到的内容。

查看 JMeter 安装的 /bin 文件夹下的 jmeter.properties 文件并查找以

开头的文件
jmeter.save.saveservice.

默认值如下:

#jmeter.save.saveservice.output_format=csv
#jmeter.save.saveservice.assertion_results_failure_message=false
#jmeter.save.saveservice.assertion_results=none
#jmeter.save.saveservice.data_type=true
#jmeter.save.saveservice.label=true
#jmeter.save.saveservice.response_code=true
#jmeter.save.saveservice.response_data=false
#jmeter.save.saveservice.response_data.on_error=false
#jmeter.save.saveservice.response_message=true
#jmeter.save.saveservice.successful=true
#jmeter.save.saveservice.thread_name=true
#jmeter.save.saveservice.time=true
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
#jmeter.save.saveservice.encoding=false
#jmeter.save.saveservice.bytes=true
#jmeter.save.saveservice.url=false
#jmeter.save.saveservice.filename=false
#jmeter.save.saveservice.hostname=false
#jmeter.save.saveservice.thread_counts=false
#jmeter.save.saveservice.sample_count=false
#jmeter.save.saveservice.idle_time=false
#jmeter.save.saveservice.timestamp_format=ms
#jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
#jmeter.save.saveservice.default_delimiter=,
#jmeter.save.saveservice.default_delimiter=\t
#jmeter.save.saveservice.print_field_names=false
#jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="../extras/jmeter-results-detail-report_21.xsl"?>
#jmeter.save.saveservice.base_prefix=~/
#jmeter.save.saveservice.autoflush=false

取消注释您感兴趣的并设置它的值以更改默认值。另一种选择是覆盖user.properties 文件中的属性或使用-J 键将其作为命令行参数提供,如下所示:

jmeter -Jjmeter.save.saveservice.print_field_names=true -n /path/to/your/test.jmx -l /path/to/results/file.jtl

请参阅Apache JMeter Properties Customization Guide 了解有关使用 JMeter 属性可以完成的操作的更多详细信息。

【讨论】:

  • 我尝试过这种方式,但生成的报告与通过 GUI/“保存表数据”生成的报告不同。如何生成与“摘要报告”中所见相同的报告
  • 某些字段是计算的,因此您可以在测试后使用“摘要报告”侦听器打开 .jtl 文件,也可以使用 Excel 或 .jtl 结果文件中的等效项进行计算。
  • 嗨@Dmitri,是否可以在测试运行时在控制台上看到 resultfile.jtl 内容?哪个选项适合这个?
  • 由于JMeter 3.0 可以在测试执行后生成HTML Reporting Dashboard,如jmeter -n -t test.jmx -l result.jtl -e -o /path/to/dashboard 或从现有的jtl results filejmeter -j /path/to/result.jtl -o /path/to/dashboard
【解决方案2】:

你可以使用这个命令,

jmeter -n -t /path to the script.jmx -l /path to save results with file name file.jtl

但是如果你真的想在远程机器上运行负载测试,你应该能够让它运行,即使你关闭了窗口。所以我们可以使用 nohup 来忽略 HUP(挂断)信号。所以你可以像下面这样使用这个命令。

nohup sh jmeter.sh -n -t /path to the script.jmx -l /path to save results with file name file.jtl &

【讨论】:

    【解决方案3】:

    您可以使用 -n 参数(用于“非 GUI”)和 -t 参数(用于测试计划文件)从命令行运行 JMeter。

        jmeter -n -t "PATHTOJMXFILE"        
    

    如果您想进一步自定义命令行体验,我会将您引导至他们文档的'Getting Started' 部分。

    【讨论】:

    • 虽然这将运行“jmx”文件,但它不会输出问题所要求的表格。
    【解决方案4】:

    这在 mac os High sierra 10.13.6、java 8 64 位、jmeter 4.0 上对我有用

    $  jmeter -n --testfile /path/to/Test_Plan.jmx
    

    样本输出:

    Creating summariser <summary>
    Created the tree successfully using ./src/test/jmeter/Test_Plan.jmx
    Starting the test @ Fri Aug 24 17:18:18 PDT 2018 (1535156298333)
    Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
    summary =     10 in 00:00:09 =    1.1/s Avg:  6666 Min:  1000 Max:  8950 Err:     
    0 (0.00%)
    Tidying up ...    @ Fri Aug 24 17:18:28 PDT 2018 (1535156308049)
    ... end of run
    

    【讨论】:

      【解决方案5】:

      要在类似 excel 的文件中获取结果,您可以选择使用 csv 文件来完成。 使用以下带有提供选项的命令。

      jmeter -n -t /path-to-jmeter-test/file.jmx -l TestResults.csv
      -n states Non GUI mode
      -t states Test JMX File
      -l state Log the results in provided file
      

      您还可以使用 -Jprop.name=value 在命令行参数中动态传递任何与结果相关的参数,这些参数已在 bin 文件夹中的 jmeter.properties 中定义。

      【讨论】:

      • 不幸的是,这不会输出测试“摘要报告”侦听器输出,它只是转储每个请求的原始列表。
      【解决方案6】:

      这将是命令行语句。

      "%JMETER_HOME%\bin\jmeter.bat" -n -t <jmx test file path> -l <csv result file path> -Djmeter.save.saveservice.output_format=csv
      

      【讨论】:

      • 应该是"%JMETER_HOME%\bin\jmeter.bat" -n -t -l -Jjmeter.save.saveservice.output_format=csv如-D[prop_name]=[value] - defines a java system property value. -J[prop name]=[value] - defines a local JMeter property. 参考链接了解更多详情here
      【解决方案7】:

      在命令行模式下: 我已经计划在 Linux 操作系统上。

      1. 下载最新的 jmeter 版本。 Apache JMeter 3.2 (Requires Java 8 or later) 目前为止。

      2. 解压到你想要的目录。比如解压到/tmp/

      3. 现在,默认输出文件格式为csv。无需更改任何内容或在 CLI 命令中指定。 例如: ./jmeter -n -t examples/test.jmx -l examples/output.csv

      要更改默认格式,请更改 jmeter.properties 中的以下参数:jmeter.save.saveservice.output_format=xml

      现在如果你运行命令:./jmeter -n -t examples/test.jmx -l examples/output.jtl 输出以 xml 格式存储。

      现在,在多个服务器上发出请求(附加信息查询):我们可以指定

      中的主机和端口作为标签

      ./jmeter -n -t examples/test.jmx -l examples/output.jtl -JHOST=&lt;HOST&gt; -JPORT=&lt;PORT&gt;

      【讨论】:

      • 为 HTTPsampler 定义的主机和端口。
      【解决方案8】:

      检查我的 powershell 命令

      $Date = Get-Date -Format ddMMyyyyhhmmss
      jmeter -n -t jmetter\dev.jmx -l jmetter\TestResult-$Date.csv -o jmetter\Results-$Date\ -X
      

      // 要了解所有参数(如 -n、-t、...),请使用以下命令:

      jmeter --?

      【讨论】:

        【解决方案9】:

        在命令行模式下运行JMeter:

        1.导航到JMeter的bin目录

        现在输入以下命令,

        jmeter -n –t test.jmx
        

        -n:指定JMeter以非gui模式运行

        -t:指定包含测试计划的 JMX 文件的名称

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-13
          • 1970-01-01
          • 1970-01-01
          • 2018-07-20
          • 1970-01-01
          相关资源
          最近更新 更多