启动Jmeter

终端下,直接输入jmeter命令,启动Jmeter

CLI模式

对于负载测试,您必须在此模式下运行JMeter(不含GUI),才能从中获得最佳结果。为此,请使用以下命令选项:

jmeter -n -t [脚本文件] -l [报告文件] -e -o [报告路径]

jmeter -n -t Script.jmx -Jconcurrent_number=50 -Jduration=120 -Jcycles=-1 -l report.jtl -e -o C:\Users\Test\

字段 说明
-n 这指定JMeter要在cli模式下运行
-t [包含测试计划的JMX文件的名称]。
-l 记录测试结果的 jtl 文件名称
-j [JMeter运行日志文件的名称]。
-r 指定所有远程服务器中运行测试(所有)
-R [远程服务器列表]在指定的远程服务器中运行测试(指定)
-g 生成测试报表(CSV)
-e 生成测试报表(HTML)
-o 生成测试报表(HTML) 文件夹不得存在或为空
字段 说明
-H [代理服务器主机名或ip地址]
-P [代理服务器端口]

该脚本还允许您指定可选的防火墙/代理服务器信息:
示例:jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

字段 说明
-Jconcurrent_number: 并发数
-Jduration: 执行时间(单位s,默认60s)
-Jcycles: 循环次数(默认1即不限制次数)

服务器模式

对于分布式测试,请在远程节点上以服务器模式运行JMeter,然后从GUI控制服务器。您还可以使用CLI模式运行远程测试。要启动服务器,请在每台服务器主机上运行jmeter-server[.bat]。

字段 说明
-H [代理服务器主机名或ip地址]
-P [代理服务器端口]

该脚本还允许您指定可选的防火墙/代理服务器信息:
示例:jmeter-server -H my.proxy.server -P 8000

如果您希望服务器在运行单个测试后退出,请定义JMeter propertyserver.exitaftertest=true。

要在CLI模式下从客户端运行测试,请使用以下命令:

jmeter -n -t testplan.jmx -r [-Gprop=val] [-Gglobal.properties] [-X]
字段 说明
-G 用于定义要在服务器中设置的JMeter属性
-R 在指定的远程服务器中运行测试
-X 意味着在测试结束时退出服务器
-Rserver1,server2 可以使用代替-r来提供要启动的服务器列表。覆盖 remote_hosts,但不定义属性

如果属性jmeterengine.remote.system.exit设置为true(默认为false),那么JMeter将在测试结束时停止RMI后调用System.exit(0)。通常这没有必要。

通过命令行覆盖属性

Java系统属性和JMeter属性可以直接在命令lin上重写(而不是修改jmeter.properties)。为此,请使用以下选项:

字段 说明
-D[prop_name]=[value] 定义java系统属性值。
-J[prop_name]=[value] 定义本地JMeter属性。
-G[prop_name]=[value] 定义要发送到所有远程服务器的JMeter属性。
-G[propertyfile] 定义一个包含JMeter属性的文件,以发送到所有远程服务器。
-L[category]=[priority] 覆盖日志记录设置,将特定类别设置为给定的优先级级别。
-L 标志也可以在没有类别名称的情况下用于设置根日志级别。

实例:

jmeter -Duser.dir=/home/mstover/jmeter_stuff \
-Jremote_hosts=127.0.0.1 -Ljmeter.engine=DEBUG
jmeter -LDEBUG

命令行属性在启动早期处理,但在日志记录系统设置后进行处理。