Jmeter(十二):线程组元件第三方插件的线程组压力和负载线程详解

线程组(thread group)

线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件 都必须在某个线程下。所有的任务都是基于线程组。

一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一 个虚拟用户。多个用户同时去执行相同的一批次任务。每个线程之间都是隔离的, 互不影响的。一个线程的执行过程中,操作的变量,不会影响其他线程的变量值。

线程组的设置相当于性能测试中的场景设置。场景是用来尽量真实模拟用户 操作的工作单元,场景设计源自于用户真实操作。

性能测试中涉及的基本场景有两种,即单一业务场景和混合业务场景,这两 种业务场景缺一不可,缺少任何一种都不能准确评估系统性能,定位系统瓶颈。

如果只做单一业务场景,得到的结果与实际生产环境差距较大,没有实际指 导意义;如果只做混合业务场景,不能快速定位系统性能快速降低的原因,起不 到定位瓶颈、系统调优的作用。只有两种场景互为补充,才可以获取最符合客户 要求的测试结果

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

华测教育软件测试进阶全套视频教程(2023全网最新版,软件测试进阶自学必备)

线程组界面解析


在取样器错误后要执行的动作

设置线程组中某一个请求出错后的异常处理方式。

继续:请求出错后继续运行。勾选此项后,有请求出错也继续运行。在大量用户 并发的情况下,服务器偶尔响应错误是正常现象,比如服务器由于性能问题不能 正常响应或者响应不及时,此时我们把过程中错误记录下来,作为有性能问题的 依据

启动下一进程循环:遇到sampler执行出错时,直接进行下次循环,当前循环剩 下的所有sampler不再执行

停止线程:遇到sampler执行出错时,当前线程停止进行,其他线程继续。

停止测试:遇到sampler执行出错时,当前所有线程执行完当前循环停止进行。

立即停止测试:遇到sampler执行出错时,当前所有线程立即停止

线程属性

线程数:设置并发用户线程数量,即通常意义的并发用户数,一个线程对应一个 模拟用户(且用户之间独立);(如果线程数是5,循环次数是2,则代表每个线程用户循环2次,一共执行10次)

Ramp-Up时间(秒):设置并发用户加载时间,即线程启动开始运行的时间间隔,单位是秒。(如上图中表示10秒加载5个线程,很均匀的2秒加载一个,可通过监听器中的用表格察看结果看到间隔时间)

循环次数:线程组下的元件循环次数设置,勾选永远则是无限循环(进行性能测试的时候设置成永远)

same user on each iteration:选中后每次循环用第一次的cookie,不再更新, 可以理解为每次循环都是同一个用户;不选中每次循环都是用新的cookie值,可 以理解为每次循环都是不同的用户;(一般和HTTP Cookie管理器的每次反复清除cookies?的勾选框使用)

延迟创建线程直到需要:默认情况下,测试开始的时候,所有线程就被创建完了。 如果勾选了此选项,那么线程只会在合适的需要用到的时候创建。设置与否区别 不大;

调度器:用于设置该线程组下脚本执行的开始时间和结束时间(及性能测试的持续时间);

持续时间(秒):测试计划持续多长时间(设置性能测试的持续时间,比如设置7200秒等于性能测试要做2小时);

启动延迟(秒):测试计划延迟多长时间启动(设置性能测试的开始时间,比如设置30秒等于30秒后开始进行性能测试)

setUp线程组(setUp thread group)

一种特殊类型的线程组,用于在执行常规线程组之前执行一些必要的操作。 在 setup线程组下提到的线程行为与普通线程组完全相同。不同的是执行顺序--- 它会在普通线程组执行之前被触发;

应用场景举例:

A、测试数据库操作功能时,用于执行打开数据库连接的操作。

B、测试用户购物功能时,用于执行用户的注册、登录等操作。

注:跨线程组之间不能进行jmeter变量传递,即使在线程组最外面使用用户定义的变量也不行;跨线程组之间也不能进行cookie传递,即使在线程组最外面使用cookie管理器也不行;如下图;(可通过后置处理器》BeanShell后置处理程序把jmeter变量和cookie作为jmeter属性进行传递;见下面的解决方法)

解决方法:通过后置处理器》BeanShell后置处理程序把jmeter变量和cookie作为jmeter属性进行传递

tearDown线程组(tearDown thread group)

一种特殊类型的线程组,用于在执行常规线程组之后执行一些必要的操作。 在 teardown线程组下提到的线程行为与普通线程组完全相同。不同的是执行顺序--- 它会在普通线程组执行之后被触发;

应用场景举例:

A、测试数据库操作功能时,用于执行关闭数据库连接的操作。

jp@gc - Stepping Thread Group线程组

该线程组属于第三方插件

当测试需求要求是阶梯型的压力测试场景时,使用该线程组。

Stepping Thread Group界面介绍

This group will start "Max" threads:达到多少个并发,比如需求是达到100个并发 后持续加压,这里就是100,也就是并发的最高点;

First,wait for "N" seconds:启动第一个线程之前,需要等待N秒,如果这里是0, 表示不等待,直接启动;

Then start "N" threads:设置最开始时启动N个线程,一开始启动多少个线程,如 开始启动30个线程;

Next add "N1" threads every "N2" seconds, using ramp-up "N3" seconds:表示每隔 N2秒,在N3秒内启动几个线程,如每隔10s在5s内启动10个线程;

Then hold load for "N" seconds:单台负载机全部线程加载完毕,持续运行多少秒;

Finally,stop "N1" ,threads ervery "N2" seconds:表示每隔N2s,停掉N1个线程;

jp@gc - Ultimate Thread Group线程组

该线程组属于第三方插件

该线程组功能强大,可以实现多种自定义场景设置

Ultimate Thread Group界面介绍

  • Start Threads Count:当前行启动的线程总数
  • Initial Delay/sec:延时启动当前行的线程,单位:秒
  • Startup Time/sec:启动当前行所有线程达峰值所需时间,单位:秒
  • Hold Load For/sec:当前行线程达到峰值后的稳定加载时间,单位:秒
  • Shutdown Time:停止当前行所有线程所需时间,单位:秒

Ultimate Thread Group应用

1、创建线性负载:如下 30s内50个用户进入系统,持续访问系统60s后,在10s 退出

2、创建步进负载:想看系统的负载量是多少,最大负载多少,是否可以平稳运行

3、创建波浪形测试负载:比如12306抢票的时候,每次抢票开始时,有大量用 户响应,等到下次开放时,又有大量用户响应

写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/116599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git基本命令和使用

文章目录 1、Git本地库命令1.1、初始化本地库1.2、设置用户签名1.3、查看本地库状态1.4、将工作区的修改添加到暂存区1.5、将暂存区的修改提交到本地库1.6、历史版本1.7、取消commit1.8、取消暂存文件 2、分支操作2.1、查看分支2.2、创建分支2.3、分支合并时产生冲突 3、Gitee远…

Pillow(PIL)库的主要方法介绍

Pillow(Python Imaging Library)是Python中一个强大的图像处理库,它允许你进行图像的创建、打开、编辑、保存和显示等操作。Pillow 是 PIL(Python Imaging Library)的分支,支持多种图像格式,并提…

javaEE -7(网络原理初识 --- 7000字)

一:网络初识 计算机的独立模式是指多台计算机在网络中相互独立运行,彼此之间不共享资源或信息。在早期,计算机主要采用独立模式,每台计算机都拥有自己的操作系统、应用程序和数据,它们之间没有直接的连接或通信。 在…

解决LOGITECH 罗技驱动 MAC版出现的一些问题汇总!

安装前将之前的安装文件清理干净!!!!! 罗技驱动最新安装包下载 我的鼠标是G304 1. 驱动安装一直卡在99% 运行官方下载的安装程序,卡住后关掉窗口。 在终端中执行以下命令: sudo /Users/用户名…

期 货 分 仓,资 管 分 仓,跟单软件都有哪些特点?

期货分仓软件是一种用于期货交易的软件系统。通过该系统,机构可以在一个主账户中同时使用多个子账户操作多个期货合约,并且可以设置不同资金量的用户不同的开仓比例。 由于目前国内的期货市场对于国际市场的品种还处于不规范阶段:一方面是保证…

Openssl数据安全传输平台003:Protobuf - 部署

文章目录 Github代码仓库位置一、Windows环境配置生成库文件之后—>参考3.3 配置VS1. 先将平台设置为所有平台2. 配置属性 >> C/C >> 常规 >> 附加包含目录3. 配置属性 >> C/C >> 预处理器 >> 预处理器定义,添加4. 配置属性 >> C…

1024程序员节:理解编码背后的艺术

1024的含义 "1024"在中国互联网文化中有两个主要的含义: 1024是2的10次方,这在计算机科学中是一个重要的数字,因为计算机的基础是二进制。因此,程序员们常常把1024作为一个特殊的日子来庆祝,也就是10月24日…

laravel框架介绍(一)

laravel框架是一套简洁,优雅的PHPWeb开发框架。

【Rust 易学教程】学前准备:Cargo, 你好

当你开始学习 Rust 时,很快就会遇到 Cargo,它是 Rust 生态系统中用于构建和运行 Rust 应用程序的标准工具。在 《Rust 易学教程》 首篇中,我会简要概述一下 Cargo 是什么,以及它如何适应更广泛的生态系统。 安装 请按照 https:/…

经管博士科研基础【26】海塞矩阵

1. 海塞矩阵 海塞矩阵是一个由多变量实值函数的所有二阶偏导数组成的方块矩阵。 一元函数就是二阶导,多元函数就是二阶偏导组成的矩阵。求向量函数最小值时可以使用,矩阵正定是最小值存在的充分条件。经济学中常常遇到求最优的问题,目标函数是多元非线性函数的极值问题,尚…

【大数据】Kafka 实战教程(二)

Kafka 实战教程(二) 1.下载2.安装3.配置4.运行4.1 启动 Zookeeper4.2 启动 Kafka 5.第一个消息5.1 创建一个 Topic5.2 创建一个消息消费者5.3 创建一个消息生产者 1.下载 你可以在 Kafka 官网:http://kafka.apache.org/downloads&#xff0c…

玩游戏缺失“d3d11.dll丢失“的问题的五种解决方案

在我日常的计算机维护工作中,经常遇到一些用户报告他们遇到了"d3d11.dll丢失"的问题。这是一个常见的Windows系统错误,通常会导致程序无法正常运行。在这篇文章中,我将分享我找到的五种有效的解决方法,以帮助这些用户解…

Selenium获取百度百科旅游景点的InfoBox消息盒

前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了SeleniumPhantomjs后,准备利用它们获取百度百科的旅游景点消息盒(InfoBox),这也是毕业设计实体对齐和属…

Linux下的命令行参数和环境变量

命令行参数 什么是命令行参数 命令行参数是指在执行命令行程序时&#xff0c;给程序传递的额外参数。在Linux终端中&#xff0c;命令行参数通常通过在命令后面添加空格分隔的参数来传递。 Linux下以main函数举例说明 #include<stdio.h>int main(int argc char* argv[])…

C++入门(3):引用,内联函数

一、引用 1.1 引用特性 引用必须初始化 一个变量可以有多个引用 引用一旦引用一个实体&#xff0c;就不能引用其他实体 int main() {int a 10, C 20;int& b a;b c; // 赋值&#xff1f;还是b变成c的别名&#xff1f;return 0; }1.2 常引用 引用权限可以平移或缩小…

MySQL实践——分页查询优化

问题现象 一个客户业务系统带有分页查询功能&#xff0c;但是随着查询页数的增加&#xff0c;越往后查询性能越差&#xff0c;有时一个查询可能需要1分钟左右的时间。分页查询的写法类似于&#xff1a; select * from employees limit 250000,5000;这是最传统的一种分页查询写…

AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (三)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 &#xff1a; AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射&#xff1a; AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 &#xff1a; AD9371 官方…

GB28181学习(十一)——控制(PTZ、镜头、光圈等控制)

要求 源设备向目标设备发送控制命令&#xff0c;控制命令类型包括&#xff1a; 摄像机云台控制远程启动录像控制报警布防/撤防报警复位强制关键帧拉框放大/缩小看守位控制PTZ精准控制存储卡格式化目标跟踪软件升级设备配置 设备配置的内容包括&#xff1a; 基本参数视频参数范…

React TypeScript安装npm第三方包时,些包并不是 TypeScript 编写的

npm install types/包名称 例如&#xff1a;npm install types/jquery 学习链接

QSPI介绍

0 Preface/Foreword 1 QSPI介绍