Jmeter - 通过命令行运行.jmx文件,并在excel中获取摘要报告

use*_*294 30 command jmeter

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

问题是如何使用命令行实现相同的功能.

Dmi*_*i T 50

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

jmeter -n -t /path/to/your/test.jmx -l /path/to/results/file.jtl
Run Code Online (Sandbox Code Playgroud)

您可以通过使用JMeter Properties设置您希望在结果jtl文件中看到的内容.

请参阅jmeter.propertiesJMeter安装的/ bin文件夹下的文件,并查找以...开头的文件

jmeter.save.saveservice.
Run Code Online (Sandbox Code Playgroud)

默认值如下:

#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
Run Code Online (Sandbox Code Playgroud)

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

jmeter -Jjmeter.save.saveservice.print_field_names=true -n /path/to/your/test.jmx -l /path/to/results/file.jtl
Run Code Online (Sandbox Code Playgroud)

有关使用JMeter属性可以执行的操作的更多详细信息,请参阅Apache JMeter属性自定义指南.

  • 我尝试过这种方式,但生成的报告与通过 GUI/“保存表数据”生成的报告不同。如何生成与“摘要报告”中相同的报告 (3认同)
  • 某些字段是**计算**的,因此您可以在测试后使用“摘要报告”侦听器打开 .jtl 文件,或者使用 Excel 或 .jtl 结果文件中的等效项实现计算。 (2认同)

Ush*_*ani 5

你可以使用这个命令,

jmeter -n -t /path to the script.jmx -l /path to save results with file name file.jtl
Run Code Online (Sandbox Code Playgroud)

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

nohup sh jmeter.sh -n -t /path to the script.jmx -l /path to save results with file name file.jtl &
Run Code Online (Sandbox Code Playgroud)