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

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

实现思路

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

Jmeter系列(11)- 自动化压力测试逻辑思路及例子的更多相关文章

  1. Windows和Linux的Jmeter分布式集群压力测试

    Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...

  2. 一个基于.NET平台的自动化/压力测试系统设计简述

    AutoTest系统设计概述 AutoTest是一个基于.NET平台实现的自动化/压力测试的系统,可独立运行于windows平台下,支持分布式部署,不需要其他配置或编译器的支持.(本质是一个基于协议的 ...

  3. 转:使用 JMeter 完成常用的压力测试

    使用 JMeter 完成常用的压力测试 就目前 Java EE 的平台下开发的软件来说,这种节点通常可能是:Web 服务器.数据库服务器和 JMS 服务器.它们都是请求主要发生的地点,请求频率较其它的 ...

  4. Android自动化压力测试图解教程——Monkey工具 (转)

    有时候我们需要对一个软件进行压力测试,检查该软件的性能.如果是人工进行测试的话,效率会低很多,而且会比较枯燥.这时,Android中的一个命令行工具Monkey就可以为我们减轻很多重复而又繁琐的工作. ...

  5. 【转】使用JMeter 完成常用的压力测试(二)

    使用JMeter 完成常用的压力测试 Login.jsp 和welcome.jsp.其中 login.jsp 负责生成 User 对象,并调用 User 的login.当 login 返回为 true ...

  6. Jmeter教程 简单的压力测试

    Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html

  7. Android自动化压力测试图解教程——Monkey工具

    [置顶] Android自动化压力测试图解教程--Monkey工具 标签: 测试androidprofiling工具测试工具文档 2012-04-01 10:16 38185人阅读 评论(10) 收藏 ...

  8. JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)

    JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...

  9. 【转】使用JMeter 完成常用的压力测试(三)

    使用JMeter 完成常用的压力测试 发布时间: 2008-9-27 15:33    作者: 未知    来源: 网络转载 字体:  小  中  大  | 上一篇 下一篇 | 打印  | 我要投稿 ...

随机推荐

  1. Ubuntu本地提权适配不同小版本内核(CVE-2017-16995)

    朋友在执行的时候说有的会出现提权不成功,内核crash掉的现象.因为cred结构体的偏移量可能因为内核版本不同.内核编译选项不同而出现差异,作者给的exp偏移量是写死的,所以exp里面对应的偏移地址也 ...

  2. 一次关于shiro反序列化漏洞的思考

    0x01前言 之前在我反序列化的那篇文章中(https://www.cnblogs.com/lcxblogs/p/13539535.html),简单说了一下反序列化漏洞,也提了一嘴常见的几种Java框 ...

  3. 题解 english

    传送门 好题 肝完这题感觉头巨痛 首先\(n \leqslant 1000\)的部分可以\(n^2\)单调队列,有30pts 然后考场上魔改了下单调栈,让它能顺便维护出以\(1~i-1\)为左端点的区 ...

  4. noip模拟16

    T1 是我早就忘干净的最小生成树...(特殊生成树,欧几里得生成树) 用一手prim算法一直连最小距离边 连到\(k+1\)(边界)退出即可. Code #include<cstring> ...

  5. C# 获取计算机的硬件、操作系统信息

    C# 获取计算机的硬件.操作系统信息   获得信息的命名空间是:System.Management 创建ManagementObjectSearcher对象获取相关信息 eg: using Syste ...

  6. WPF 勾选划线

    最近项目需要一个左右侧一对多的划线功能 我们先来看一下效果秃: 主要功能: 支持动态添加 支持复选 支持修改颜色 支持动态宽度 主要实现:事件的传递 应用场景:购物互选,食品搭配,角色互选 数据源 左 ...

  7. Django中的增删改查

    1.model 假设我们的model如下: 某个JobType下有很多Job. class JobType(models.Model): name = models.CharField(max_len ...

  8. 面向对象之编写驱动程序--中断(linux系统、s3c6410开发板)

    /*------------------------- *先申明下,本人是个菜鸟,刚开始接触驱动程序编写,交代下开发环境(主机系统redhat6.3,开发板ARM-s3c6410) 以watchdog ...

  9. TCP请求连接与断开

    TCP连接的三次握手:

  10. springboot系列总结(二)---springboot的常用注解

    上一篇文章我们简单讲了一下@SpringBootApplication这个注解,申明让spring boot自动给程序进行必要的配置,他是一个组合注解,包含了@ComponentScan.@Confi ...