JMeter 十二:命令行执行

参考文档: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,就可以看到详细取样结果信息。

image

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的内容是一致的。

image

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:mytestfilesBSH.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
原文地址:https://www.cnblogs.com/miniren/p/7206124.html