命令行模式运行JMeter最简单教程

404 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

JMeter测试神器

JMeter JMXMon插件监控JVM.md

JMeter是性能测试的常用工具,从我在上上上家公司就开始用了,后来在网易测试互联网应用时也用过,它可以模拟大规模的用户访问,并定义具体的用户访问动作。

作为性能测试工具(或者说是平台),最重要的是形成生态,整合多种多样的工具,方便地调用,形成测试案例整体。

最近在Shopee工作,正好要做性能测试,于是JMeter又用起来了,并且为了更真实地反映测试情况,还需要通过命令行方式进行测试,防止GUI部分占用额外资源影响测试结果。

问题

如果都用gui测试

  • 1.占用资源,使测试结果不准确

  • 2.很多时候要通过vpn,降低了响应,

所以要放jmeter包到内网环境,才能更好地测试


ssh zhengzezhou@10.164.96.84 -p1046

scp -P1046 ./jmeter.jar /home/zhengzezhou/    上传jar包到远端,可以绕开vpn


Jmeter命令行参数

但是不准备用代理,因为用代理也要经过vpn,降低了测试的可信度


-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 启动远程服务
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

于是有了下面的命令,我也可以把整个目录传输到84那台机器上


vincent@vincent-B250M-DS3H:/opt/apache-jmeter-4.0/bin$ ./jmeter.sh -n -t ../积分宝API测试计划.jmx 

Creating summariser <summary>

Created the tree successfully using ../积分宝API测试计划.jmx

Starting the test @ Mon Aug 13 14:34:34 CST 2018 (1534142074151)

Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445

summary =  12875 in 00:00:26 =  503.1/s Avg:    57 Min:    12 Max:   452 Err:     0 (0.00%)


在内网环境部署

jmeter命令行部署test20(96.84 也就是 10.122.78.12)和test11(10.122.58.89 或者内网的96.36)成功了,并且尝试性对开发联调环境进行了压测,执行成功。jmeter命令行可以作为压测的后备选项。

具体在 /home/nbc/jmeter/bin目录下


cd /opt

scp -r -P 1046 ./jmeter zhengzezhou@10.122.78.12:/home/zhengzezhou

//然后zhengzezhou登录test20环境

cp -r /jmeter /tmp/

sudo -iu nbc

cp -r /tmp/jmeter/ .

cd jmeter/bin

./jmeter.sh -n -t ../积分宝API测试计划.jmx 

显示结果如下


Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445

summary +   1801 in 00:00:05 =  388.2/s Avg:    61 Min:    12 Max:   269 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0

summary +  14204 in 00:00:30 =  473.6/s Avg:    62 Min:     9 Max:   278 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0

summary =  16005 in 00:00:35 =  462.1/s Avg:    62 Min:     9 Max:   278 Err:     0 (0.00%)

jmeter命令行简明教程