jmeter 线程组 Open Model Thread Group & 阶梯式压测、高峰流量压测

简介

Open Model Thread Group 是5.4.1 版本中引入的一个实验性线程组,可以弹性模拟负载测试。例如设置多个线程模式,再根据这些线程模式调整不同的并发数、暂停时间。由于Open Model Thread Group 是一个实验性线程组,可能会存在一些限制和不确定性。

目录

[1. 基本用法](#1. 基本用法)

[1.1. 界面说明](#1.1. 界面说明)

[1.2. 使用说明](#1.2. 使用说明)

[2. 压力测试场景](#2. 压力测试场景)

[2.1. 递增式压测](#2.1. 递增式压测)

[2.2. 限时活动高峰流量](#2.2. 限时活动高峰流量)

[2.3. 随机流量](#2.3. 随机流量)


1. 基本用法

1.1. 界面说明

添加线程组

  • rate(1/min):设置每分钟线程数。
    • rate(60/min) 表示每分钟60个请求
    • rate(5/sec) 表示每秒钟5个请求。
  • random_arrivals(10 min):设置测试时长。
    • random_arrivals(1 min) 表示每个请求之间的到达时间在 1 分钟内是随机的。
  • pause(1 min):每个线程模式启动之间的暂停时间。
    • pause(1 min) 表示每个模式在启动后会等待 1 分钟,然后才会启动下一个模式。
  • /* comment */:注释。
  • Random seed:用于生成随机数的起始值(默认0)。

1.2. 使用说明

1、通过rate和random_arrivals控制线程数和测试时间

  • 测试10个线程,持续30s
bash 复制代码
rate(10/sec)
random_arrivals(30 sec) 

配置线程组,执行测试

活跃线程数如下:

每秒TPS如下:

2、设置A模型结束的暂停时间,继续测试B模型

  • A模型5个线程,运行10秒;结束后暂停3秒;B模型5个线程,运行10秒
bash 复制代码
rate(5/sec) random_arrivals(10 sec) 
pause(3 sec)
rate(5/sec) random_arrivals(10 sec) 

设置线程组

活跃线程数如下:

每秒TPS如下:

2. 压力测试场景

2.1. 递增式压测

1、1分钟从10个线程增加到100

bash 复制代码
rate(10/sec) 
random_arrivals(1 min) 
rate(100/sec)

线程组配置如下:

活跃线程数如下:

每秒TPS如下:

2、30秒内从10个线程增加到100个,持续100个线程2分钟

bash 复制代码
rate(10/sec) random_arrivals(30 sec) 
rate(100/sec) random_arrivals(2 min)

线程组配置如下:

活跃线程数如下:

每秒TPS如下:

2.2. 限时活动高峰流量

1、构造单个高峰期

bash 复制代码
rate(5/sec) random_arrivals(1 min) 
rate(5/sec) random_arrivals(15 sec) 
rate(50/sec) random_arrivals(15 sec) 
rate(50/sec)random_arrivals(10 sec) 
rate(5/sec) random_arrivals(1 min)

时间与线程数说明

  • 1分:平稳保持5个线程;
  • 15秒:从5个线程持续增加到50个线程;
  • 15秒:平稳保持50个线程;
  • 10秒::从50个线程持续下降到5个线程;;
  • 1分:平稳保持5个线程。

线程组配置如下 :

活跃线程数如下:

每秒TPS如下:

2、构造多个峰谷(方法同单峰谷)

bash 复制代码
rate(5/sec) random_arrivals(1 min) 
rate(5/sec) random_arrivals(15 sec) 
rate(50/sec) random_arrivals(15 sec) 
rate(50/sec)random_arrivals(10 sec) 
rate(5/sec) random_arrivals(0.5 min)
rate(5/sec) random_arrivals(5 sec) 
rate(80/sec) random_arrivals(10 sec) 
rate(80/sec)random_arrivals(5 sec) 
rate(5/sec) random_arrivals(1 min)

线程组配置如下:

活跃线程数如下:

每秒TPS如下:

2.3. 随机流量

1、打开函数对话框,生成随机10~50随机数

2、设置线程组(随机数可以代入线程数和测试时间)

bash 复制代码
rate(${__Random(10,50,)}/sec)
random_arrivals(1 min)

3、活跃线程数如下:

4、每秒TPS如下:

相关推荐
qq_4337169511 小时前
微信小程序UI自动化测试实践 !
自动化测试·软件测试·python·selenium·测试工具·压力测试
m0_748239633 天前
怎样正确做 Web 应用的压力测试?
前端·压力测试
测试19983 天前
Jmeter进行http接口测试
自动化测试·软件测试·python·测试工具·jmeter·http·职场和发展
樊梓慕4 天前
负载均衡式在线OJ系统测试报告(Jmeter性能测试、Selenium自动化测试脚本)
功能测试·selenium·测试工具·jmeter
哎呦,帅小伙哦4 天前
系统压力测试助手——stress-ng
压力测试·stress-ng
weixin_441937074 天前
ddos压测,压力测试,ddos攻击,cc攻击 如何防御?
压力测试·ddos
MJH8275 天前
Selenium + Pytest自动化测试框架实战!
selenium·测试工具·jmeter·职场和发展·pytest·postman
云边的快乐猫5 天前
Jmeter下载安装配置教程(多版本)
jmeter
十二测试录5 天前
Jmeter自学【8】- 使用JMeter模拟设备通过MQTT发送数据
经验分享·测试工具·jmeter·程序人生·自动化
字节程序员6 天前
软件测试之压力测试【详解】
测试用例·压力测试