JMeter 十二:命令行执行

时间:2022-11-08 23:47:38

参考文档:http://jmeter.apache.org/usermanual/get-started.html#non_gui

真正开始跑压力测试时,我们就不能使用GUI模式了。这时候需要采用命令行模式。

执行测试命令

参数说明:

-n, --nongui
run JMeter
in nongui mode //以命令行模式执行JMeter
-t, --testfile <argument>
the jmeter test(.jmx) file to run.
"-t LAST" will load last used file //指定要执行的JMX脚本
-l, --logfile <argument>
the file to log samples to
//指定取样结果的保存文件
-j, --jmeterlogfile <argument>
jmeter run log file (jmeter.log)
//指定jmeter.log的路径

示例:

1. 命令行方式跑 my_test.jmx

jmeter -n -t my_test.jmx

2. 保存取样结果

这里取样结果可以保存为csv格式,也可以保存为jtl格式。

jmeter -n -t my_test.jmx -l a.csv

保存好的a.csv或者a.jtl文件可以在后期使用JMeter直接打开。

新建一个Test Plan,任意建立一个监听器,比如查看结果树。点击浏览,打开我们保存的文件,这里就是a.csv,就可以看到详细取样结果信息。

JMeter 十二:命令行执行

3. 保存JMeter的log文件

JMeter的log信息默认情况下都保存到 jmeter.log文件里面。但是这个文件每次跑测试之前都会清空,所以如果我们想要保存每次测试的log信息,我们就需要用到 –j 这条命令。

jmeter -n -t my_test.jmx -j a.log

以JMeter的GUI模式执行时,可以通过点击下面的黄色感叹号来打开 Log View 面板,也可以通过 选项 –> Log Viewer来打开。Log Viewer面板显示的log和上面命令行执行产生的a.log的内容是一致的。

JMeter 十二:命令行执行

log内容类似如下:

2017-03-01 12:19:20,314 INFO o.a.j.JMeter: Version 3.2.20170301
2017-03-01 12:19:45,314 INFO o.a.j.g.a.Load: Loading file: c:\mytestfiles\BSH.jmx
2017-03-01 12:19:52,328 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2017-03-01 12:19:52,384 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group BSH. Ramp up = 1.
2017-03-01 12:19:52,485 INFO o.a.j.e.StandardJMeterEngine: Continue on error
2017-03-01 12:19:52,589 INFO o.a.j.t.JMeterThread: Thread BSH1-1 started
2017-03-01 12:19:52,590 INFO o.a.j.t.JMeterThread: Thread BSH1-1 is done
2017-03-01 12:19:52,691 INFO o.a.j.e.StandardJMeterEngine: Test has ended

 

远程执行

参数说明:

-r, --runremote
Start remote servers (
as defined in remote_hosts) //在 remote_hosts定义的机器上跑测试
-R, --remotestart <argument>
Start these remote servers (overrides remote_hosts)
//在后边定义的机器上跑测试
-X, --remoteexit
Exit the remote servers at end of test (non
-GUI) //测试结束退出远程机器

示例:

1. 在远程机器上跑测试

jmeter -n -t testplan.jmx –r

前提是设置好远程连接:JMeter 七:远程测试

设置好远程服务器之后,这里就会启动 jmeter.properties文件里面 remote_hosts配置的远程机器。

2. 在特定的远程机器上跑测试

jmeter -n -t script.jmx -R server1,server2,…

这里先定义远程机器,然后在远程机器上启动测试。

代理

如果需要在防火墙或者代理服务器后测试,我们需要向JMeter提供 防火墙或者代理服务器的机器名以及端口号。

-H, --proxyHost <argument>
Set a proxy server
for JMeter to use //设置JMeter使用的代理服务器
-P, --proxyPort <argument>
Set proxy server port
for JMeter to use //设置JMeter使用的代理服务器端口号
-N, --nonProxyHosts <argument>
Set nonproxy host list (e.g.
*.apache.org|localhost) //设置非代理服务器列表
-u, --username <argument>
Set username
for proxy server that JMeter is to use //设置JMeter使用的代理服务器用户名
-a, --password <argument>
Set password
for proxy server that JMeter is to use //设置JMeter使用的代理服务器密码

示例:

jmeter -H xxx.xxx.xxx -P 8000 -u username -a password -N localhost

 

帮助命令

参数说明:

--?
print command line options and exit
//打印命令行选项
-h, --help
print usage information and exit
//打印帮助信息
-v, --version
print the version information and exit
//打印版本信息

 

其他命令

还有一些不常用的其他命令,主要都是对一些属性的设置。拷贝下来留作备用。

-p, --propfile <argument>
the jmeter property file to use
-q, --addprop <argument>
additional JMeter property file(s)
-i, --jmeterlogconf <argument>
jmeter logging configuration file (log4j2.xml)
-s, --server
run the JMeter server
-J, --jmeterproperty <argument>=<value>
Define additional JMeter properties
-G, --globalproperty <argument>=<value>
Define Global properties (sent to servers)
e.g.
-Gport=123
or
-Gglobal.properties
-D, --systemproperty <argument>=<value>
Define additional system properties
-S, --systemPropertyFile <argument>
additional system property file(s)
-f, --forceDeleteResultFile
force delete existing results files before start the test
-L, --loglevel <argument>=<value>
[category
=]level e.g. jorphan=INFO, jmeter.util=DEBUG or com
.example.foo
=WARN
-d, --homedir <argument>
the jmeter home directory to use