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_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不会自动创建,同时将日志输出至命令行窗口。再执行一次,就出来了,很奇怪。不放你们可以试一试。
结果文件类型为 jtl 或 csv,可通过JMeter的聚合报告浏览结果文件,查看最终的结果,如下所示:
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
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
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^