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

这篇具有很好参考价值的文章主要介绍了Jmeter场景组合测试——多个线程组的设计方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我们就可以把这5个场景分别放到5个线程组中,然后每个线程组都是10并发和循环执行100次,在测试计划中勾选“独立运行每个线程组”即可(默认选项)。文章来源地址https://www.toymoban.com/news/detail-413792.html

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

到了这里,关于Jmeter场景组合测试——多个线程组的设计方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 页面查询多项数据组合的线程池设计

    我们应对并发场景时一般会采用下面方式去预估线程池的线程数量,比如QPS需求是1000,平均每个任务需要执行的时间是t秒,那么我们需要的线程数是t * 1000。 但是在一些情况下,这个t是不好估算的,即便是估算出来了,在实际的线程环境上也需要进行验证和微调。比如在本

    2024年02月08日
    浏览(28)
  • 接口测试之jmeter不同线程组之间的参数共享

    思路:创建两个线程组,第一个线程组里面的 “登陆接口” 中登陆成功后获取到的token,要作为第二个线程组的http请求头中的参数信息 【ps:很多时候跨线程无法获取到参数就是没有勾选这个选项导致的】 注意:jmeter本身的内置函数中,“__setProperty()” 函数可以把某参数的

    2023年04月09日
    浏览(33)
  • 页面查询多项数据组合的线程池设计 | 京东云技术团队

    我们应对并发场景时一般会采用下面方式去预估线程池的线程数量,比如QPS需求是1000,平均每个任务需要执行的时间是t秒,那么我们需要的线程数是t * 1000。 但是在一些情况下,这个t是不好估算的,即便是估算出来了,在实际的线程环境上也需要进行验证和微调。比如在本

    2024年02月07日
    浏览(35)
  • 使用Mockito针对多线程场景编写单元测试

    Mockito是一个Java的Mocking框架,主要用于编写单元测试。针对多线程编程的单元测试,可以使用Mockito的一些特性和技巧来完成。  Mockito支持异步调用技术,可以使用Mockito.when().thenReturnAsync()方法来模拟异步调用的返回值。这样可以模拟多线程编程的情况。 例如,假设有一个异

    2024年02月09日
    浏览(33)
  • Jmeter系列- test plan【测试计划】详细讲解 、 测试计划参数详解 、基础线程组Thread Group

    测试计划描述了 Jmeter 在执行时,一系列的步骤 一个完整的测试计划包含了一个或多个【线程组、逻辑控制器、采样器、监听器、定时器、断言和配置元素】测试计划添加or删除元件 通过右键点击树中的元件,选中要添加的元件 也可以通过合并(merge)或打开(open)从文件中

    2024年02月22日
    浏览(32)
  • 【设计模式——学习笔记】23种设计模式——组合模式Composite(原理讲解+应用场景介绍+案例介绍+Java代码实现)

    编写程序展示一个学校院系结构: 需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系 【传统方式】 将学院看做是学校的子类,系是学院的子类,小的组织继承大的组织 分析: 在一个页面中展示出学校的院系组成,一个学校有多个

    2024年02月15日
    浏览(30)
  • 50 C++ 多个线程共享资源问题fix方案二 ----- lock_guard类

    在上一节中,我们使用了mutex的lock函数和unlock函数处理共享资源问题 这一节,我们学习使用 lock_guard来处理 共享资源问题。 是个类模版,这个类模版只能对mutex类型进行构造 例子: lock_guardmutex mylock_guard(mymutex); 优点类似于智能指针, 当我们实例化一个 lock_guard后,不需要un

    2024年01月17日
    浏览(30)
  • Jmeter的自动化测试实施方案

    前言: Jmeter是目前最流行的一种测试工具,基于此工具我们搭建了一整套的自动化方案,包括了脚本添加配置、本地配置和运行、服务器配置等内容,完成了自动化测试闭环,通过这种快捷简便高效的方式,希望可以解决自动化测试上手难的痛点。下面闲言少叙,我们直接切

    2024年02月10日
    浏览(37)
  • 接口测试 [分享] 自动化测试与持续集成方案--Jmeter 测试接口及性能

    目录 前言: 一、什么是接口测试? 二、接口测试的流程 三、编写接口测试脚本 四、接口持续集成 补上性能测试报告:  接口测试是软件测试中的重要环节,它用于验证系统的不同组件之间的通信和数据传输是否正常。自动化测试和持续集成方案可以帮助测试团队更高效地

    2024年02月15日
    浏览(37)
  • 轻松打造智能化性能测试监控平台:【JMeter+Grafana+Influxdb】的优化整合方案

    目录 【引言】 【背景说明】 【实现原理】 【平台搭建】 方法一:Windows或macOS环境下搭建 1.InfluxDB安装 2.grafana安装 3.jmeter配置 方法二:Linux环境下搭建 1.influxdb安装 2.grafana安装 3.jdk+jmeter安装 方法三:docker容器下安装 1.influxdb安装并运行(选择2.0以下版本) 2.grafana安装并运行

    2024年02月06日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包