jmeter性能测试实例2解析--linux环境
本地开发环境⽣成脚本,上传压测机器 (修改参数化文件路径、请求地址)
内⽹环境,⾮GUI下压测
停⽌其他⽆关资源进程
压测机和被压测机器隔离(避免资源争夺:内存、CPU、磁盘IO、网络IO)
高并发下的jmeter集合点实战
多⽤户并发测试,但真正的并发其实是不存在的,⽤⼯具模 拟并发 ;
测试“线程数”是并发⽤户数,启动需要时间,不是并发 同⼀时刻访问;
常规压测需要模拟全部⽤户同⼀时刻访问,⽐如 秒杀 案例场景;
需求:先让全部请求 同时集合在⼀起,然后再⼀起访问,实现真正的并发,引入Jmeter的同步定时器(集合点)
- 环境准备
- 安装JDK1.8版本,版本检查命令:java -version
2. 下载及安装jmeter;官网下载即可https://jmeter.apache.org/download_jmeter.cgi
3. rz命令将安装包apache-jmeter-5.5.tgz上传到Linux服务器
解压即可运行:tar zxvf apache-jmeter-5.5.tgz
根据自己测试情况,确认是否需要修改jmeter本身内存,Linux环境下修改/apache-jmeter-5.5/bin/jmeter文件(win环境meter.bat文件)里的行“
: "${HEAP:="-Xms1g -Xmx5g -XX:MaxMetaspaceSize=256m"}" 初始1g内存,最大5g内存,
- 压测试流程
- 先在win环境 把压测脚本调试好(是否需要用 持续时间断言Duration Assertion、同步定时时Synchroniziong Ttimer也就是集合点设置)
2.脚本上传到Linux服务器指定位置 /root/scriptcd,
修改脚本文件***.jmx里的loginToken、并发用户数、集合点的用户数
3. 创建两个目录/temp/jtl、/temp/result 用来存报测试报告并开始压测试,
压测所执行的命令写入了脚本里了
#!/bin/bash
rm -f temp/jtl/result.jtl
rm -rf /root/temp/result/*
sh /root/sortware/apache-jmeter-5.5/bin/jmeter -n -t /root/script/promotion20230221.jmx -l /root/temp/jtl/result.jtl -e -o /root/temp/result
脚本执行完后,压缩及下载命令写入了脚本,如下所示:
#!/bin/bash
rm -f result.tgz
tar czf result.tgz result/
Time=`date +%Y%m%d%H%M%S`
firfix='result'
filename=${firfix}${Time}.tgz
#echo $filename
mv result.tgz $filename
sz $filename
4.监控分析、性能调优、测试优化后结果