Jmeter场景组合测试——多个线程组的设计方案

news2024/9/21 5:40:08

我们绝大多数同学在使用jmeter进行性能测试时都会在一个线程组中完成测试工作,今天我来重点讲解一下jmeter多个线程组在测试中的应用,这也是关于jmeter性能测试面试过程中的进阶问题,希望能够帮到大家来解决工作中不同的测试需求。

线程组中的线程执行顺序是什么?

首先大家需要明确一件事儿,在jmeter中,对于同一个线程组中的一个线程来说,请求是顺序执行的。下图中,对于线程1来说,在每次循环时,请求1、请求2和请求3是顺序执行的。

在这里大家需要确认一个问题?参考上图,如果多线程并发(例如10个线程),能够保证10个线程都先执行请求1,然后执行请求2,最后到请求3吗?答案是:正常情况保证不了,因为多线程执行是无序的,每个线程执行的速度也不同,这样会出现:线程1执行了请求1、请求2和请求3,线程2刚刚执行了请求1,线程3还没执行任何请求的情况。但是通过加集合点(synchronizing timer)的方式可以,关于集合点的使用这里不会重点介绍。

如何对不同的请求完成集中压测?

例如,我们需要实现一个需求:10个并发分别对请求1、请求2、请求3进行压测,并连续执行100次?

答案是使用多线程组,例如设计三个线程组,然后把请求1、请求2、请求3分别放到三个线程组中,在每个线程组中分别设置线程数是10,循环次数是100,设计方法如下:

那么如何保证在某段时间内只对某一个请求进行并发测试呢?即如何实现在某时间段a只对线程组1进行并发操作,某时间段b只对线程组2进行并发操作?

实现方法也很简单,在测试计划中勾选“独立运行每个线程组”即可,如下图,这样就保证了各个线程组独立运行,不会出现线程组并发运行的情况

线程组之间需要有一定的时间间隔该如何处理?

例如想在线程组1运行完成1分钟以后才运行程组2,这个需求该如何实现呢?

首先,大家有没有想过为什么要有这个需求呢?比如我们要对不同的接口进行测试,然后在后台进行监控,如果设置了时间间隔,就可以很清晰的看到在测试不同的接口时的资源利用率的变化情况。例如:接口1占用cpu资源平均为30%,接口2占用cpu资源平均为32% ,如果没有时间间隔,就很难区分二者在cpu上的消耗情况了,但是加上时间间隔以后在二者之间就会出现cpu使用率明显下降的一段区间,如下图所示:

有的同学可能会使用固定定时器,通过在不同的线程组之间加固定定时器来实现这个需求,如下图所示:

但是实际情况是,上图这种设计方式是无效的,会出现:在线程组1中10个并发执行一次,就会等待1分钟的情况!大家可以亲自验证一下。

所以正确的方法是通过线程组的调度器来实现,如下图:

我们设置您需要的启动延迟时间,然后设置持续时间,这个值可以预估大一些,例如100秒,因为如果上面的循环次数设置为5, 那么执行完5次循环后,该线程组就会停止运行(即使运行时间没有到100秒)

多个线程组设计方案的实际应用

前面讲了那么多,实际工作中多个线程组的设计方案有哪些呢?

  • 场景1:多个线程组顺序运行

典型的应用,就是依次测试单个接口的处理能力。简单的说:10个接口10并发,循环执行100次。

我们就可以把这10个接口分别放到10个线程组中,然后每个线程组都是10并发和循环执行100次,在测试计划中勾选“独立运行每个线程组”即可。

  • 场景2:多个线程组并行运行(适合多场景同时运行)

典型的应用,系统中同时运行多个场景。简单的说:有5个场景(每个场景都包含多个接口)10并发,循环执行100次。

我们就可以把这5个场景分别放到5个线程组中,然后每个线程组都是10并发和循环执行100次,在测试计划中勾选“独立运行每个线程组”即可(默认选项)。

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

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

相关文章

Rust个人学习之有意思的所有权

在Rust中是没有内存垃圾回收机制(GC)的,那Rust是如何保障内存安全的呢?这就引出了“所有权”这个概念。 我们看下下面这段伪代码 let s "helloString"; t s; print(s); 在之前我们学习的语言中,比如C语言,对于上述伪…

人工智能原理复习 | 产生式系统

文章目录 一、概述二、八数码问题三、特殊的产生式系统四、一些补充CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 通过学习人工智能原理课程了解基本的人工智能问题的求解方法和原理。 一、概述 产生式系统(Production System):是构造知识型系统和建立认知模型时常用的知…

用canvas绘制微信小程序海报页面并保存相册-适用微信原生

微信小程序绘制海报并保存相册 tip:代码中使用的是uni的api 如果使用原生微信小程序开发,可以把uni更换成wx使用 文章目录微信小程序绘制海报并保存相册前言一、分析需求二、准备数据三、编码开始html部分解析:js部分1、准备好数据后开始绘制…

王道操作系统笔记(三)———— 处理机调度

文章目录一、调度的概念1.1 调度的基本概念1.2 调度的层次1.3 补充:七状态模型二、调度的时机、切换与过程2.1 进程调度的时机2.2 狭义进程调度、进程切换、广义进程调度2.3 进程切换的过程2.4 补充:闲逛进程三、进程的调度方式四、调度算法的评价指标五…

【通信原理(含matlab程序)】实验四 升余弦滚降基带传输

💥💥💞💞欢迎来到本博客❤️❤️💥💥 本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~ &#x…

【Novel AI】使用绘画AI构建unity游戏资源

请勿在商业用途中使用下面的示例图中的任何资源! 1. 设想: 首先根据自己的设想,创造一些角色原型,角色特点等等 这里我根据网络上找的一些参考,我大概想要的是比较特别的一个警察的猫人形的动物角色; 2…

网络编程(TCP+UDP)(1)

咱们的一个TCP服务器,是否可以让一个UDP客户端连接上呢? 1)TCP和UDP,他们无论是API代码,还是协议底层的工作过程,都是差异巨大的,不是单纯的把流转化成数据包就可以的; 2)描述一次通信&#xff…

武器系统中的自主性(国防部指令3000.09)

批准:负责政策的国防部副部长办公室2023年1月25日可以公开发布。可在指令司网站https://www.esd.whs.mil/DD/查阅。国防部指令3000.09,“武器系统中的自主性”,2012年11月21日国防部副部长凯瑟琳希克斯(Kathleen H. Hicks)目的:本指令:•建立开发和使用武…

教育数字化转型 看低代码怎么构建实现

数字经济和数字社会的发展,推动教育培养目标和内容的发展与变革。经过教育信息化1.0和2.0的建设,我国数字技术与教育经历了起步、应用、融合、创新四个阶段,目前正处于融合与创新并存的时期。教育数字化教育数字化转型是教育信息化的特殊阶段…

C 程序设计教程(20)—— 数组和指针(三):数组与指针的关系

C 程序设计教程(20)—— 数组和指针(三):数组与指针的关系 该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用…

RESTful应用

AJAX技术 浏览器是多进程的,简单的说就是,浏览器每打开一个标签页,就相当于创建了一个独立的浏览器进程。但是js是基于单线程的,而这个线程就是浏览器的js引擎,浏览器无论在什么时候都只且只有一个线程在运行JavaScri…

sonic-ios-bridge(sib)性能监控之系统性能及应用性能

sib下载地址:Releases SonicCloudOrg/sonic-ios-bridge GitHub 可以看到最新版本为V1.3.7。下载到本地并解压后即可使用。 性能监控使用帮助:sib perfmon -h sib perfmon -f -j:以json格式化显示性能数据。 一、查看系统整体性能数据 查看…

10. POP3收取邮件

1. POP3协议 POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。 POP 协议…

Kernel: sysctl: hung_task_panic、hung_task_check_count、hung_task_timeout_secs

文章目录 mutex 锁相关的一个例子这个和磁盘相关的一个例子hung_task_panic:hung_task_check_count:hung_task_timeout_secs:实例hung_task_warnings:相关的编译配置mutex 锁相关的一个例子 systemd-shutdown 卡在device-shutdown时调用的mutex-lock操作。 这个和磁盘相关的…

Android ANR触发机制及日志分析

1.ANR Application Not Responding,即应用程序未响应。Android系统要求一些事件在一定时间范围内完成,如果超过预定时间未得到有效响应或响应时间过长,就会造成ANR。 Android中有4种ANR发生场景: ①点击事件(按键和触摸事件&am…

PDF在线合并网页版有哪些?这几款你一定没用过

PDF在线合并网页版有哪些?很多人在工作中都需要给其他人发送一些重要文件,如果文件数量比较多的时候,就会出现耗时有耗力的情况,所以我们就需要想一个办法来解决问题,那就是将多个PDF文件进行合并,我们需要…

MATLAB算法实战应用案例精讲-【数模应用】概率生成模型(Generative Model)

前言 知识储备 表征学习 背后的核心思想representation learning ,不是试图直接对高维样本空间建模,而是使用一些低维潜在空间来描述训练集中的每个观察,然后学习一个映射函数,该函数可以在潜在空间中取一个点,将其映射到原始域中的一个点。换句话说,潜在空间中的每个…

[LeetCode 1664]生成平衡数组的方案数

题目描述 题目链接:[LeetCode 1664]生成平衡数组的方案数 给你一个整数数组 nums 。你需要选择 恰好 一个下标(下标从 0 开始)并删除对应的元素。请注意剩下元素的下标可能会因为删除操作而发生改变。 比方说,如果 nums [6,1,…

群晖(docker图形化界面)使用 SpeedTest 测速

群晖(docker图形化界面)使用 SpeedTest 测速 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 本文主要介绍在群晖中安装 speedtest 进行网络测速。 一、安装 docker 在套件中心搜索并且安装 docker。 二、下载容器 在 注册表 中搜索 adolfintel/speedte…

UART、RS232、RS485和RS422

1.UART UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种通用的串行、异步通信总线,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式&#…