JMeter的CLI模式简介
CLI的模式的最大优势是节省系统资源,能够产生更大的负载,可以通过命令行参数对测试场景进行更精细的配置。也可以通过shell脚本命令执行,易于持续集成。所以当负载测试时,最好在CLI模式下运行JMeter,可以从中获得最佳结果。
使用无GUI的模式: jmeter -n -t test.jmx -l test.jtl
尽量少使用监听器Listener;如果使用上面的-l标记,他们均可以被删除或禁用
在压力测试过程中,不要使用查看结果树或在Table中查看结果监听器,仅在脚本调试阶段使用即可
以下对jmeter命令选项进行描述。
-n 指定JMeter在CLI模式下运行
-t 加载测试脚本文件JMX
-l 指定日志文件JTL用来记录取样器的结果
-j 指定JMeter的运行日志
-r 按照JMeter property "remote_hosts"中配置的服务器运行测试用例,如:jmeter -n -t script.jmx -r
-R 指定远程服务器运行测试用例,如jmeter -n -t script.jmx -R server1,server2,…
-g 生成CSV格式的仪表盘报表
-e 在性能测试后生成仪表盘报表
-o 在负载测试后,生成报告仪表板的输出文件夹
-H 设置 JMeter 使用的代理主机,测试服务器的域名或者IP笛子
-P 设置 JMeter 使用的代理主机的端口号,测试服务器端口
测试命令
以实际的案例介绍CLI测试流程。
D:\apache-jmeter-5.3\bin> ./jmeter -n -t D:\MyTestPlan-JMeter\Manager.jmx -l D:\MyTestPlan-JMeter\Manager.jtl -H localhost -P 8000
Creating summariser <summary>
Created the tree successfully using D:\MyTestPlan-JMeter\Manager.jmx
Starting standalone test @ Tue Dec 15 13:19:00 CST 2020 (1608009540348)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary + 1 in 00:00:00 = 3.8/s Avg: 41 Min: 41 Max: 41 Err: 0 (0.00%) Active: 2 Started: 2 Finished: 0
summary + 906 in 00:00:09 = 101.4/s Avg: 3 Min: 1 Max: 41 Err: 0 (0.00%) Active: 0 Started: 16 Finished: 16
summary = 907 in 00:00:09 = 98.6/s Avg: 3 Min: 1 Max: 41 Err: 0 (0.00%)
Tidying up ... @ Tue Dec 15 13:19:09 CST 2020 (1608009549671)
... end of run
记录测试日志
在Jmeter命令行指定Manager.jtl 日志文件,输出如下所示:
JMeter集群
JMeter的集群模式是将多台机器联合起来进行负载测试,从而弥补单台机器负载生成能力不足。在集群模式下,最少需要两台机器,其中一台是client,用于控制其他执行机的机器,不产生负载压力,另一台server用于执行测试计划。
开启server
在Linux或者Unix下,运行JMETER_HOME/bin/jmeter-server
在Windows下,运行JMETER_HOME/bin/jmeter-server.bat
配置测试参数
在负责管理的客户端机器上,编辑JMETER_HOME/bin/jmeter.properties文件,配置remote_hosts如下:
#---------------------------------------------------------------------------
# Remote hosts and RMI configuration
#---------------------------------------------------------------------------
# Remote Hosts - comma delimited
remote_hosts=127.0.0.1
#remote_hosts=localhost:1099,localhost:2010
将所有server的ip,以逗号分隔的格式进行配置,也可以在CLI的命令行中指定server的ip。
jmeter -R host1,127.0.0.1,host2,192.168.1.100......
通过客户端运行GUI
JMeter客户端的Run菜单下,运行"Remote Start" and “Remote Stop”
CLI模式的其它优势
使用CSV格式输出要优于XML
仅保存需要的数据
尽可能使用少的断言
使用最优的脚本语言(查看JSR223部分)
运行测试用例的时间比GUI要短