jmeter教程(三)-线程组介绍

发布于 2020-08-03  967 次阅读


1.setUp Thread Group

一种特殊类型的线程组,在常规线程执行前执行,在'setup thread group'线程下的行为和常规线程一模一样,不同的是执行顺序,最先执行也就是常见的‘前置操作’。

应用场景

  • 数据库连接、文件处理等
  • 注册、登录

2.tearDown Thread Group

与setUp Thread Group 对应,最后执行

应用场景

  • 退出后垃圾清理
  • 数据库连接关闭
  • 文件描述符关闭
  • 登出

3.线程组(Thread Group--常用)

这个就是我们通常使用的线程,一个线程组可以看成一个虚拟用户组,线程组中的每个线程可以看成每个虚拟用户。多个用户同时去执行同一批次任务,每个线程之间都是隔离的互不影响。

1.线程属性

点击鼠标右键->添加->Threads(Users)->线程组

线程属性区域中,如果设置线程数为1(线程数等同于虚拟用户数),默认1秒启动1个用户,循环次数输入10标识循环10次,那么跑的结果就是左侧线程组下属的所有控制器都会执行10次,第一个用户跑完后接着跑第二个

执行结果,请求了10次

请求次数=线程数 * 循环次数,循环次数如果勾选“永远”,就是一直循环下去

2. 采样器失败后处理

1、continue:继续执行接下来的操作

2、Start Next Thread Loop:开始下一次循环

3、stop Thread:停止线程,退出该线程(不再执行此线程的操作)

4、stop Test:等待当前执行的采样器结束后,结束整个测试

5、Stop Test Now:马上停止测试

3.调度器配置

4. Stepping Thread Group(逐步线程组--常用)

这个可以模仿递增式并发(不但递增还可以递减),并可设置递增次数、递增启动延迟、递增时长、到达目标递增数量保持时长等等

1、线程组最大用户数:100个

2、初次加载用户前等待时间:0秒,

3、第一次加载用户数:20个用户开始

4和5和6:每隔3秒在5秒内增加10个用户

7、持续压测600秒,10分钟

8、和9:退用户,每1秒退出5个用户

5. Ultimate Thread Group(最终线程组--常用)

它可以对负载中的线程组进行复杂的管理。通过在线程计划中具有无限数量的行来完成此操作,这可以为线程组的不同部分启用不同的配置。该插件跟Stepping Thread Group线程组有些类似,不过这个是多个线程组设置的结合。执行的时候,每个线程组是同时按照自己的规则开始执行的,每一时刻,得到的结果都是两个线程组的叠加

形象比喻:

并发的用户就像浪花一波一波的不断涌入系统,拍打服务器,考验我们的系统能否顶住压力并平稳运行

我们的网站正在平稳运行的时候,突然有一波1000用户同时访问,我们称之为第一浪潮。访问了30s之后,第一浪潮在15s内逐渐退出系统。

在第一浪潮退出系统的同时,第二波2000用户在极短时间内又突然涌入网站,我们称之为第二浪潮。在访问30s之后,第二浪潮在15s内也逐渐退出了系统。

在第二浪潮退出系统的同时,第三波3000用户又突然涌入网站,我们称之为第三浪潮。在访问30s之后,第三浪潮在15s内也逐渐退出了系统。

在第三浪潮退出系统的同时,第四波1000用户又突然涌入网站,我们称之为第四浪潮。在访问30s之后,第四浪潮在15s内也逐渐退出了系统。

第一波

Start Threads Count:当前行要启动的线程总数,100个

Initial Delay/sec:延时启动当前行的线程,初始延迟时间,10s

Startup Time/sec:启动当前行所有线程到达峰值所需要的时间,20s启动完成,5个/s

Hold Load For/sec:当前行线程达到峰值后的稳定加载时间,50s

Shutdown Time:停止当前行所有线程所需时间,10s,10个/s

第二波

Start Threads Count:当前行要启动的线程总数,100个

Initial Delay/sec:延时启动当前行的线程,初始延迟时间,0s

Startup Time/sec:启动当前行所有线程到达峰值所需要的时间,30s内启动完成

Hold Load For/sec:当前行线程达到峰值后的稳定加载时间,60s

Shutdown Time:停止当前行所有线程所需时间,10s,10个/s

总结

  • bzm - Arrivals Thread Group(bzm-到达线程组)
  • bzm - Free-Form Arrivals Thread Group
  • bzm- Concurrency Thread Group(递增式并发线程组)
  • jp@gc - Stepping Thread Group(5.0官方被弃用)
  • jp@gc - Ultimate Thread Group (最终\极限线程组)

jmeter自带的线程组比较简单,如果需要逐渐增加并发数的功能并不能实现,所以就需要使用Jmeter插件,以上插件需要安装。根据使用场景可以自行选择,常用的有 jp@gc - Ultimate Thread Groupjp@gc - Stepping Thread Group(5.0官方被弃用,可以用 bzm- Concurrency Thread Group


一名测试工作者,专注接口测试、自动化测试、性能测试、Python技术。