Jmeter系列(11)- 自动化压力测试逻辑思路及例子
2024-08-28 08:43:55
为什么需要进行自动化压力测试
手动逐步加压,需要人工改变并发数,还要等待。所有,我们完全可以制定好策略,让程序自动加压,自动等待,输出报告
实现思路
- Jmeter脚本(.jmx文件)- 压测逻辑
- Shell - 控制逻辑(Windows系统用Bat)
- 并发数更改 - Linux三剑客
- Jmeter静默运行 - 脱离UI限制,使其运行稳定
Jmeter脚本
UI页面调试通
Shell脚本
前期准备:Linux上JDK,Jmeter安装好,环境变量已配置好
脚本:
#!/bin/bash
jmx_template="APIStress"
suffix=".jmx"
jmx_template_filename=$jmx_template$suffix
os_type=$(uname)
c_path=$(dirname $0)
c_path=$(cd $c_path;pwd)
#强制杀死Jmeter进程
killJmeter()
{
pid=$(ps -ef | grep jmeter | grep java | grep $jmx_filename | awk '{print $2}')
echo "jmeter id list:$pid"
if [ -z $pid ]
then
echo "no jmeter pid alive"
else
kill -s 9 $pid
fi
}
thread_number_array=(3 5 10)
for i in ${thread_number_array[@]}
do
jmx_filename=$jmx_template$i$suffix
jtl_filename="test_$i.jtl"
rm -f $c_path/../jmeter_jmx/$jmx_filename $c_path/../jmeter_jtl/$jtl_filename
cp $c_path/../jmeter_jmx/$jmx_template_filename $c_path/../jmeter_jmx/$jmx_filename
echo "生成jmx压测脚本:$jmx_filename"
if [ $os_type == "Linux" ]
then
sed -i "s/thread_number/$i/g" $c_path/../jmeter_jmx/$jmx_filename
else
echo "当前$os_type系统未安装相应关机"
fi
nohup jmeter -n -t $c_path/../jmeter_jmx/$jmx_filename -l $c_path/../jmeter_jtl/$jtl_filename &
sleep 60
killJmeter
rm -f $c_path/../jmeter_jmx/$jmx_filename
done
echo "自动化压测结束"
运行Shell脚本
查看报告
使用UI Jmeter查看报告
最新文章
- ActiveMQ安全配置
- UEditor编辑文章出现多余空行问题的解决办法
- 【Linux】linux常用基本命令
- 批处理脚本修改hosts文件指定域名解析IP
- Spring 事务管理原理探究
- php之文件上传类代码
- interview material
- ETL几种方案对比
- Xcode7 使用NSURLSession发送HTTP请求报错
- git忽略特殊文件
- Team Foundation Server 2015使用教程--团队项目创建
- 201521123081《Java程序设计》 第4周学习总结
- Linux基础命令讲解(一)
- es6总结
- 开源框架SmartImageView的使用
- Windows 快捷方式(*.link)打开方式关联错误
- Html h1-h6 标签
- Vue学习四:v-if及v-show指令使用方法
- flask开发微信公众号
- js-JavaScript实现数字的千位分隔符