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

news2025/1/13 10:12:37

线程组(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.coloradmin.cn/o/1127740.html

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

相关文章

升讯威在线客服系统的并发高性能数据处理技术:为多线程处理同步数据

我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。 最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可。 客户组织多名客服上线后&a…

uniapp跨域

配置 /manifest.json "devServer" : { "https" : false, "port" : 7101, "proxy": { "/api": { "target": "https://域名", "changeOrigin": t…

3D模型如何添加表面贴图?

1、模型表面贴图介绍 模型表面贴图(Texture Mapping)是一种将纹理映射到三维模型表面的技术,用于增加模型的细节和真实感。它通过在模型的每个表面点上应用纹理坐标,并将纹理像素与模型的对应点进行匹配,使得模型表面…

elasticSearch put全局更新和单个字段更新语法

1、如下:更新改类型未doc(文档)的全局字段数据 注意:如果你使用的是上面的语句,但是只写了id和title并赋值,图片上其他字段没有填写,执行命令后,则会把原文档中的其他字段都给删除了,你会发现查…

prosemirror 学习记录(二)创建 apple 节点

apple type 向 schema 中添加 apple type const nodes {apple: {inline: true,attrs: {name: { default: "unknown" },},group: "inline",draggable: true,parseDOM: [{tag: "span[custom-node-typeapple]",getAttrs(dom) {return {name: dom…

【高效开发工具系列】Apifox

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

Vue单页面应用(SPA)怎么做SEO

在Vue单页面应用(SPA)中,由于内容的动态加载和路由切换,搜索引擎可能无法直接获取和索引页面的内容。不过,你可以采取一些策略来优化SEO,使你的Vue单页面应用在搜索引擎中更好地被索引和展示: 1:使用预渲染(Prerendering)或服务器端渲染(Server-Side Rendering,SS…

爬虫采集如何解决ip被限制的问题呢?

在进行爬虫采集的过程中,很多开发者会遇到IP被限制的问题,这给采集工作带来了很大的不便。那么,如何解决这个问题呢?下面我们将从以下几个方面进行探讨。 一、了解网站的反爬机制 首先,我们需要了解目标网站的反爬机制…

设计模式(13)适配器模式

一、介绍: 1、定义:是一种结构型设计模式,它可以将一个类的接口转换成客户端所期望的另一种接口。适配器模式常用于系统的不兼容性问题。 2、组成: (1)目标接口(Target)&#xff…

商品价格区间筛选

列表应用,商品价格区间筛选。 (本笔记适合熟悉python列表及列表的条件筛选的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么…

允许mysql远程访问

一、修改表 进入mysql,mysql -u root ,如果没有root用户,那么是可以直接进入的 使用 mysql数据库 use mysql 执行 update user set host% where userroot; 查询 用户表 select User,Host from user 把root用户的host改为 % 允许任何主…

elment-ui 日期选择器 月份区间选择的问题解决(含代码、截图)

elment-ui 日期选择器 月份区间选择的问题解决(含代码、截图) 参考文章: elment-ui 日期选择器 月份区间选择的问题解决官方文档参考:https://element.eleme.cn/#/zh-CN/component/date-picker 效果图: 代码案例&…

赢球票(蓝桥杯)

赢球票 题目描述 某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。 主持人拿出 N 张卡片(上面写着 1⋯N 的数字),打乱顺序,排成一个圆圈。 你可以从任意一张卡片开始顺时针数数: 1,2,3 ⋯ 如果数到的数字刚好和卡片上的…

东莞理工网安学院举办第三届“火焰杯”软件测试高校就业选拔赛颁奖典礼

3月7日下午,由软件测试就业联盟主办的第三届“火焰杯”软件测试高校就业选拔赛颁奖典礼在9A206报告厅举行。本届比赛我院有25位同学报名参加,预选赛阶段,有5位同学获奖。其中,一等奖1项,奖金价值10000元;二…

element-plus 自动按需引入icon unplugin-icons相关配置(有效)

1.安装的组件有这四个2.vite.config.js配置文件修改页面使用附完整vite.config.js配置 相关配置&#xff08;自行根据配置文件中的安装哈&#xff0c;我就不一 一列举了&#xff09; 1.安装的组件有这四个 2.vite.config.js配置文件修改 页面使用 <i-ep-edit />效果 附…

Linux操作系统使用及C高级编程

一、Linux介绍及环境配置 Linux介绍及环境配置 一、UNIX、LINUX和GNU简介 1、UNIX简介 2、Linux 1)操作系统内核软件操作系统 2&#xff09;操作系统内核-能统一的管理硬件了 3&#xff09;基于UNIX&#xff0c;UNIX不开源&#xff0c;对硬件要求专一&#xff0c;因此出现…

2023年【安全生产监管人员】考试题及安全生产监管人员考试内容

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【安全生产监管人员】考试题及安全生产监管人员考试内容&#xff0c;包含安全生产监管人员考试题答案和解析及安全生产监管人员考试内容练习。安全生产模拟考试一点通结合国家安全生产监管人员考试最新大纲及安…

【OpenCV实现图像的算数运算,性能测试和优化,改变颜色空间】

文章目录 OpenCV功能概要图像的算数运算性能测试和优化改变颜色空间对象追踪 OpenCV功能概要 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习库&#xff0c;提供了丰富的图像处理和计算机视觉算法。它支持多种编程语言&…

【C++入门:C++世界的奇幻之旅】

1. 什么是C 2. C发展史 3. C的重要性 4. C关键字 5. 命名空间 6. C输入&输出 7. 缺省参数 8. 函数重载 9. 引用 10. 内联函数 11. auto关键字(C11) 12. 基于范围的for循环(C11) 13. 指针空值---nullptr(C11)05. 1. 什么是C C语言是结构化和模块化的语言&…