为什么需要进行自动化压力测试

手动逐步加压,需要人工改变并发数,还要等待。所有,我们完全可以制定好策略,让程序自动加压,自动等待,输出报告

实现思路

  • 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查看报告

最新文章

  1. ActiveMQ安全配置
  2. UEditor编辑文章出现多余空行问题的解决办法
  3. 【Linux】linux常用基本命令
  4. 批处理脚本修改hosts文件指定域名解析IP
  5. Spring 事务管理原理探究
  6. php之文件上传类代码
  7. interview material
  8. ETL几种方案对比
  9. Xcode7 使用NSURLSession发送HTTP请求报错
  10. git忽略特殊文件
  11. Team Foundation Server 2015使用教程--团队项目创建
  12. 201521123081《Java程序设计》 第4周学习总结
  13. Linux基础命令讲解(一)
  14. es6总结
  15. 开源框架SmartImageView的使用
  16. Windows 快捷方式(*.link)打开方式关联错误
  17. Html h1-h6 标签
  18. Vue学习四:v-if及v-show指令使用方法
  19. flask开发微信公众号
  20. js-JavaScript实现数字的千位分隔符

热门文章

  1. DG:11.2.0.4 RAC在线duplicate恢复DG
  2. Spring整合Quartz轻松完成定时任务
  3. LeetCoded第239题题解--滑动窗口最大值
  4. NIO中的File
  5. java《设计原则-里氏替换原则》
  6. 高德地图——2D转换3D
  7. 微信小程序 div选中效果
  8. Python3-sqlalchemy-orm 联表查询-无外键关系
  9. jquery/vue/react前端多语言国际化翻译方案指南
  10. Linux服务器JDK的安装