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

相关推荐
卓码软件测评9 小时前
【网站测试:CORS配置错误引发的安全风险及测试】
功能测试·安全·web安全·压力测试·可用性测试·安全性测试
小丁爱养花2 天前
接口性能测试工具 - JMeter
测试工具·jmeter
敲上瘾4 天前
Linux系统cgroups资源精细化控制基础
linux·测试工具·docker·压力测试·cgroups
曾经的三心草5 天前
微服务的编程测评系统11-jmeter-redis-竞赛列表
redis·jmeter·微服务
天才测试猿5 天前
常见的Jmeter压测问题
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试
张永清-老清6 天前
《JMeter核心技术、性能测试与性能分析》 教学大纲及标准
jmeter·性能优化
kakwooi6 天前
易乐播播放器---压力测试
java·jmeter·测试
测试开发Kevin6 天前
详解grafana k6 中stage的核心概念与作用
测试工具·压力测试·grafana
张永清7 天前
《JMeter核心技术、性能测试与性能分析》 教学大纲及标准
jmeter·性能测试·性能调优·性能分析·教材
哈哈孝子7 天前
JMeter性能测试详细版(适合0基础小白学习--非常详细)
功能测试·jmeter