JMeter学习—006—JMeter 命令行(非GUI模式)详解(一)-分布式(远程)执行脚本及查看指定结果、日志

时间:2021-09-27 08:28:58

JMeter分布式运行脚本,以更好的达到预设的性能测试(并发)场景,前文解说了jmeter使用命令行执行各个参数的作用以及命令行使用范例,那么此文就继续前文,针对 JMeter 的命令行模式之分布式远程执行模式进行详细解说。

一、应用场景

1、无需交互界面或受环境限制(linux text model)
2、远程或分布式执行
3、持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于生成报告

二、命令行模式优点

1、节约系统资源:无需启动界面,节约系统资源
2、便捷快速:仅需启动命令行,输入命令便可执行,是为命令达人最爱
3、易于持续集成:可通过shell脚本命令执行

三、参数详解(为了方便记忆,我把参数全英文写出来)


命令参数                 
命令英文释义 命令中文释义
-n This specifies JMeter is to run in non-gui mode 指定JMeter在非gui模式下运行
-t [name of JMX file that contains the Test Plan]. 指定jmx脚本路径
参数为:jmx脚本路径,若脚本非当前目录需用全路径或相对路径。
-l [name of JTL file to log sample results to] 指定结果文件路径
参数为:结果文件路径。路径不存在时会自动创建。
-j [name of JMeter run log file]. 指定执行日志路径
参数为:日志路径。路径不存在,不会自动创建,同时将日志输出至命令行控制台。执行第二次,路径不存在,就会自动创建了,很奇怪。
-r Run the test in the servers specified by the JMeter property "remote_hosts" 设置分布式(远程)执行
服务器列表由JMETER_HOME/bin/jmeter.properties中remote_hosts指定的服务器上运行测试
-R [list of remote servers] Run the test in the specified remote servers 指定远程(分布式)服务器列表
参数为:指定服务器列表,配置形式如同remote_hosts
-g [path to CSV file] generate report dashboard only 指定测试结果文件路径。仅用于生成测试报表
参数为:csv结果文件
-e generate report dashboard after load test
设置测试完成后生成测试报表
-o output folder where to generate the report dashboard after load test. Folder must not exist or be empty
The script also lets you specify the optional firewall/proxy server information:
指定测试报表生成文件夹。文件夹必须为空或不存在
参数为:报表文件夹路径
-H [proxy server hostname or ip address] 指定代理服务器域名或代理服务器IP
参数为:代理服务器域名或代理服务器IP
-P [proxy server port] 指定代理服务器端口号
参数为:代理服务器端口号
     

四、分布式执行步骤(从脚本到命令执行)

步骤1、在主控机中jmeter.properties中remote_hosts配置执行机的IP

步骤2、jmx脚本配置文件需要给执行机(路径需和控制机保持一致),无配置文件就不需要给执行机任何文件了。

步骤3、开启执行机的jmeter-server.bat服务监听。(若主控机也当执行机的话,也需要开启)

步骤4、cmd进入jmeter.bat目录下执行分布式(远程)命令,进行分布式测试即可


五、实例演示

1、执行测试脚本

jmeter -n -t  C:\Users\Administrator\Desktop\invest.jmx 【我的jmx文件路径在桌面上】

命令行窗口输出如下所示:

JMeter学习—006—JMeter 命令行(非GUI模式)详解(一)-分布式(远程)执行脚本及查看指定结果、日志

默认的日志路径在Jmeter_HOME\bin\jmeter.log


2、指定结果文件及日志路径

jmeter -n -t C:\Users\Administrator\Desktop\invest.jmx  -l report\01-result.csv -j report\01-log.log

命令行窗口输出如下所示:

JMeter学习—006—JMeter 命令行(非GUI模式)详解(一)-分布式(远程)执行脚本及查看指定结果、日志


若日志路径不存在,则JMeter不会自动创建,同时将日志输出至命令行窗口。再执行一次,就出来了,很奇怪。不放你们可以试一试。

结果文件类型为 jtl 或 csv,可通过JMeter的聚合报告浏览结果文件,查看最终的结果,如下所示:

JMeter学习—006—JMeter 命令行(非GUI模式)详解(一)-分布式(远程)执行脚本及查看指定结果、日志

3、分布式(远程)执行默认服务器列表


jmeter -n -t C:\Users\Administrator\Desktop\invest.jmx -r -l report\01-result.csv -j report\01-log.log


命令行输出结果和以上一样,就不截图了。你们可以尝试下

若出现如下图所示情况,请检查:网络是否畅通、服务器域名(IP)及端口是否正确、执行机是否启动jmeter-server.bat 或 jmeter-server

JMeter学习—006—JMeter 命令行(非GUI模式)详解(一)-分布式(远程)执行脚本及查看指定结果、日志


4、分布式(远程)执行指定服务器列表


jmeter -n -t C:\Users\Administrator\Desktop\invest.jmx -R 127.0.0.1,10.133.255.175:1099 -l report\01-result.csv -j report\01-log.log



最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^