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如下:

相关推荐
se-tester9 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
Gensors传感器9 天前
Gensors压力扫描阀:解锁柔性光伏阵列绕流场重构的关键
压力测试·传感技术·高精度测量·风洞试验·压力扫描阀·扫描阀·柔性光伏阵列
汽车仪器仪表相关领域9 天前
动态诊断充电中枢:DCA-8000型动态诊断充电系统 4S店/维修连锁/新能源服务站/车队维保全场景实战全解
人工智能·车载系统·汽车·负载均衡·压力测试·可用性测试
feathered-feathered9 天前
测试实战【用例设计】自己写的项目+功能测试(1)
java·服务器·后端·功能测试·jmeter·单元测试·压力测试
天真小巫14 天前
2026.2.20总结(认识自我)
单元测试·压力测试
质量保障小乔14 天前
JMeter+Jenkins+AI自动化测试
jmeter
装不满的克莱因瓶16 天前
Java高并发异步请求实战,Jmeter暴力压测下的解决方案
jmeter·线程池·多线程·并发·resttemplate·qps·压测
007张三丰19 天前
软件测试专栏(5/20):自动化测试入门指南:从零开始构建你的第一个测试框架
自动化测试·python·算法·压力测试·测试框架
在坚持一下我可没意见22 天前
ideaPool论坛系统测试报告
java·spring boot·功能测试·selenium·jmeter·mybatis·压力测试
linweidong24 天前
别让老板等:千人并发下的实时大屏极致性能优化实录
jmeter·clickhouse·性能优化·sentinel·doris·物化视图·离线数仓