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

相关推荐
一碗面42112 小时前
Jmeter的进阶功能
jmeter
月明长歌2 天前
从零构建高并发测试体系:JMeter 接口压测与全链路实战指南
jmeter
Yeats_Liao2 天前
压力测试实战:基于Locust的高并发场景稳定性验证
人工智能·深度学习·机器学习·华为·开源·压力测试
帝落若烟3 天前
loadrunner {“msg“:“请求访问:/getInfo,认证失败,无法访问系统资源“,“code“:401}
测试工具·压力测试
一碗面4213 天前
Jmeter的基本使用
jmeter
余防4 天前
jmeter使用
jmeter
maqiang_7204 天前
jmeter做压力测试如何找到软件瓶颈
jmeter·压力测试
少云清5 天前
【软件测试】1_性能测试实战 _商城项目介绍
jmeter·性能测试
少云清5 天前
【软件测试】8_性能测试实战 _执行测试脚本
jmeter·性能测试·测试脚本执行
Gensors传感器5 天前
Gensors解读:TCP/IP协议在压力扫描系统中的作用详解
网络·网络协议·tcp/ip·压力测试·压力扫描阀·扫描阀