本篇将讲述【ENV Data Set】插件和【Local HTML Report】插件在Non-Gui命令行模式下的使用方法。
一、命令行执行JMeter
一般调试脚本时我们都是在Gui模式下运行的,但同时JMeter也支持命令行执行,命令格式如下:
JMeterHome/bin/jmeter -n -t <filename>
- -n 表示以non-gui模式运行JMeter(就是命令行执行的意思)
- -t 后面接一个空格加filename,filename就是我们的jmx脚本路径
当然还有其他command option可选:
--?
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)
-t, --testfile <argument>
the jmeter test(.jmx) file to run
-l, --logfile <argument>
the file to log samples to
-i, --jmeterlogconf <argument>
jmeter logging configuration file (log4j2.xml)
-j, --jmeterlogfile <argument>
jmeter run log file (jmeter.log)
-n, --nongui
run JMeter in nongui mode
-s, --server
run the JMeter server
-H, --proxyHost <argument>
Set a proxy server for JMeter to use
-P, --proxyPort <argument>
Set proxy server port for JMeter to use
-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
-a, --password <argument>
Set password for proxy server that JMeter is to use
-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 and web report folder if present before starting the test
-L, --loglevel <argument>=<value>
[category=]level e.g. jorphan=INFO, jmeter.util=DEBUG or com.example.foo=WARN
-r, --runremote
Start remote servers (as defined in remote_hosts)
-R, --remotestart <argument>
Start these remote servers (overrides remote_hosts)
-d, --homedir <argument>
the jmeter home directory to use
-X, --remoteexit
Exit the remote servers at end of test (CLI mode)
-g, --reportonly <argument>
generate report dashboard only, from a test results file
-e, --reportatendofloadtests
generate report dashboard after load test
-o, --reportoutputfolder <argument>
output folder for report dashboard
以上是官网的原话,详细用法请到JMeter官网上查看,在这里就不再赘述,传送门:http://jmeter.apache.org/usermanual/get-started.html#non_gui。
二、-J[prop_name]=[value]
要在Non-Gui命令行模式下使用【ENV Data Set】插件和【Local HTML Report】插件就必须借助 -J command option。
-J 的作用是什么,我们看一下官方的解释:
-J[prop_name]=[value]
defines a local JMeter property.
Examples:
jmeter -Jremote_hosts=127.0.0.1
我们翻译一下,意思就是在命令加上 -J 选项,就能定义一个本地的JMeter property。
获取property的值有两种方法:
- 在脚本文本中通过函数 ${__P(remote_hosts)} 。
- 在 BeanShell中利用 props.get("remote_hosts") 代码获取property的值。
三、插件的使用
要使用【ENV Data Set】插件和【Local HTML Report】插件同样也是利用 -J 选项:
JMeterHome/bin/jmeter -JconfigName=test-1.env -JreportName=testreport.html -JisAppend=true -n -t xxx/xxx/TestService.createTestCustomer.jmx
只要在Non-Gui命令行模式下有-JconfigName、-JreportName和-JisAppend三个JMeter property的话,插件会优先读取property的值,而不管脚本中插件的对应的值是什么,所以大家不用担心会有影响。
脚本执行完毕就会生成html的测试报告了。