Jmeter性能测试
启动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 \ |
jmeter -LDEBUG |
命令行属性在启动早期处理,但在日志记录系统设置后进行处理。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Soyl's Blog!
评论