Jmeter系列(11)- 自动化压力测试逻辑思路及例子
2023-02-18 16:26:37 时间
为什么需要进行自动化压力测试
手动逐步加压,需要人工改变并发数,还要等待。所有,我们完全可以制定好策略,让程序自动加压,自动等待,输出报告
实现思路
- 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查看报告
相关文章
- .NET实现虚拟WebShell第3课之IAuthorizationFilter
- 为NetBeans配置开发Java所需的JDK路径
- CSS Flex 弹性布局使用
- 【stars-one】JetBrains产品试用重置工具
- JB一键重置
- 修改阿里云DNS 解决蓝奏云无法访问问题
- IDEA无限试用插件
- 油猴脚本——快速引用某篇文章的标题和地址
- lzupdate
- 封装TornadoFx常用控件库
- 蓝奏云正则字符串
- stars-one的原创工具——文档生成器
- Tornadofx学习笔记(4)——IconTextFx开源库,整合5000+个字体图标
- rpc框架dubbo学习入门及环境搭建(spring boot+Kotlin)
- Tornadofx学习笔记(3)——使用Maven编译成jar包
- 探究Spring Boot中的接收参数问题与客户端发送请求传递数据
- 提问须知
- Spring boot返回时间与MySql数据库中不相同问题及解决方法
- Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现
- Tornadofx学习笔记(2)——FxRecyclerView控件的打造