jmeter常用配置元件介绍总结之线程组

系列文章目录
安装jmeter

jmeter常用配置元件介绍总结之线程组

    • 1.线程组(用户)
      • 1.1线程组
      • 1.1.setUp线程组和tearDown线程组
      • [1.2.Open Model Thread Group(开放模型线程组)](#1.2.Open Model Thread Group(开放模型线程组))
      • [1.3.bzm - Arrivals Thread Group(到达线程组)](#1.3.bzm - Arrivals Thread Group(到达线程组))
      • [1.4.jp@gc - Ultimate Thread Group(终极线程组)](#1.4.jp@gc - Ultimate Thread Group(终极线程组))
      • [1.5.jp@gc - Stepping Thread Group(递进线程组)](#1.5.jp@gc - Stepping Thread Group(递进线程组))
      • [1.6.bzm -Free-Form Arrivals Thread Group(自由到达线程组)](#1.6.bzm -Free-Form Arrivals Thread Group(自由到达线程组))

1.线程组(用户)

1.1线程组

功能 :是最基础最常用的线程组
参数讲解

  1. 在取样器错误后要执行的动作:设置请求遇到错误时,如何处理,是继续还是启动下一进程循环、停止线程、停止测试等
  2. 线程数:用于模拟用户的数量,如设置20,则表示20个虚拟用户
  3. Ramp-Up时间(秒):用多少时间来启动线程,如:20个线程,时间设置为10,则表示20/10=2,每秒启动2个线程,用10s时间启动完成20个线程
  4. 循环次数:勾选永远时会一直执行,不勾选输入数值时则循环指定次。如:20个线程,循环20次,则一共会产生20*20=400个请求
  5. 调度器--持续时间(秒):循环次数必须勾选永远才能使用,可以理解成不按次数,而是按时间来设置运行多久,如:设置为300,则线程会持续运行5分钟,5分钟后自动停止
  6. 调度器--启动延迟(秒):循环次数必须勾选永远才能使用,设置后点击运行后不会立即运行,要等待指定的时间后才会开始运行,如:设置为60,则点击运行按钮后,等待60s才开始运行

注意:调度器必须要把循环次数设置为永远才会生效


1.1.setUp线程组和tearDown线程组

功能 :执行前置操作和执行后置操作

如图,页面的参数配置和普通线程组基本一直,唯一的区别是执行的优先级不同,setUp线程组永远是最新被执行的线程组,tearDown线程组则是所以线程执行完后最后执行的

应用场景:如登录系统时,没有账号,则我们可以用setUp线程组去批量注册账号,然后普通线程组使用注册的账号来执行具体的业务操作,最后则用tearDown线程来批量退出账号登录

即:前置任务 -- 任务 -- 后置收尾任务

1.2.Open Model Thread Group(开放模型线程组)

功能 :以时间的方式,自定义测试模型、业务场景

可以配置调度计划,根据计划进行压测

rate(1/min):设置每分钟流量

random arrivals(10 min):设置持续时间

pause(1 min):设置暂停时间

/*comment*/:注释

可设置单位sec、min、hour、day,如:

rate(1/sec)

random arrivals(10 sec)

pause(1 sec)

如图演示设置的:

bash 复制代码
#每秒50tps,持续运行10s,然后暂停10s,启动下一阶段测试,每秒100tps,持续20s
rate(50/sec) random_arrivals(10 sec) pause(10 sec) 
rate(100/sec) random_arrivals(20 sec)


提示:以下的线程需要安装插件才能使用

在插件管理钟中搜索jpgc-casutg,然后下载

1.3.bzm - Arrivals Thread Group(到达线程组)

可用阶梯式的方式控制线程达到目标tps后,持续压测

参数说明:

Target Rate (arrivals/sec):设置目标tps

Ramp Up Time (sec):多长时间内达到目标tps

Ramp-Up Steps Count:启动时分多个阶梯达到目标tps

Hold Target Rate Time (sec):达到目标tps后,持续运行多长时间

Time Unit:设置时间单位,minutes/seconds,分/秒

Thread lterations Limit:线程迭代的次数限制

Log Threads Status into File:将线程状态记录到文件中

Concurrency Limit:限制最大并发限制

如图:用两个阶梯,在10秒内,达到120tps,持续运行10秒钟

1.4.jp@gc - Ultimate Thread Group(终极线程组)

功能 :可灵活的配置构建多种测试模型、场景,适合模拟有时间规律的场景
参数说明

Start Threads Count:设置该行的启动线程总数

Initial Delay:设置该行的线程启动等待时间

Startup Time:设置该行,用多长时间来启动线程总数,如:线程总数(Start Threads)设置100,启动时间(Startup Time)设置10s,则表示用10s启动100个线程

Hold Load For:设置该行,线程数全部启动后,持续运行的时间

Shutdown Time:设置改行,用多长时间来结束线程

1.5.jp@gc - Stepping Thread Group(递进线程组)

功能 :阶梯性,递增式的不断增加并发数
参数说明

This group will start:设置需要启动的总线程数

First, wait for:设置第一次启动线程时的延迟时间

Then start:设置开始递增前的用户数,先提前准备线程数,后面递增时是在这个值上递增的,类似于设置一个初始值,如:设置100,后面每次递增10,就是100--110--120...

Next, add:每次增加多少个用户数

using ramp-up:设置用多长时间来启动这些线程,这个时间是同时对Then start、Next, add作用的

如:Then start=100; Next, add=10;using ramp-up=5

则表示,用5秒时间启动100个线程后,每隔5秒又增加10个线程,直到达到设置的总线程数

Then hold load for:所有线程全部加载完后,持续运行的时间,如:总线程是500,则表示,达到500这个最高的峰值后,继续持续执行的时间

Finally, stop:每次停止的用户数

threads every:多长时间停止一次线程数

如:Finally, stop=10;threads every=5;

则表示,每5秒停止10个线程,直到所有的线程全部停止

1.6.bzm -Free-Form Arrivals Thread Group(自由到达线程组)

参数说明

Start Value:设置开始的线程数

End Value:设置结束时的用户数

Duration:设置从开始到结束线程数启动时间

Time Unit:设置时间单位,minutes/seconds,分/秒

Thread lterations Limit:线程迭代的次数限制

Log Threads Status into File:将线程状态记录到文件中

Concurrency Limit:限制最大并发限制

如:Start=100;End=200;Duration=60,

则表示,将线程数加载到100后,再用60s的时间逐渐将并发增加到200

相关推荐
Scott9999HH5 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔5 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社6 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海6 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖7 小时前
JDK 26 新特性详解
java·开发语言
马优晨8 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区9 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大10 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai10 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang