本文已参与「新人创作礼」活动,一起开启掘金创作之路。
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%)