【性能测试】JMeter:集合点,同步定时器的应用实例!

2023-09-18 20:44:57

一、集合点的定义

在性能测试过程中,为了真实模拟多个用户同时进行操作以度量服务器的处理能力,可以考虑同步虚拟用户以便恰好在同一时刻执行操作或发送请求。

通过插入集合点可以较真实模拟多个用户并发操作。

(注意:虽然通过加入集合点可以约束请求同时发送,但不能确保请求同时到达服务器,所以只能说是较真实模拟并发)

在JMeter中可以通过同步定时器来设置集合点。

二、同步定时器

Synchronizing Timer的目的是阻塞线程,直到X个线程被阻塞,然后它们全部被释放。因此,Synchronizing Timer可以在测试计划的各个点创建大的即时负载。

▲ 配置项

Number of Simultaneous Users to Group by:

设置一次性释放的线程数(默认为0)。通俗的理解就是并发用户数。

若设置为0,表示一次性释放的线程组下所有的线程。也就是并发用户数等于线程组下设置的线程数。

Timeout in milliseconds:

设置超时时间(单位毫秒ms,默认为0)。

若设置为0,定时器需要无条件等待设置线程数个数的线程全部到达才释放。比如设置线程数为100,则定时器无条件等待直到有100个线程达到才释放。

若设置的值大于0,则定时器以设置的超时时间作为等待释放的条件。

若相邻两个线程到达同步定时器的时间间隔大于超时时间,即使设置的线程数的线程未全部到达,定时器也会停止等待而释放到达的线程。

比如设置线程数为100,超时时间为2000ms,

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

工作原理为:从定时器工作开始计时,时间从0开始,在超时时间内第1个线程达到,则计时器重置为0;等待第2个线程,在超时时间内第2个线程到达,计时器重置为0;等待第3个线程...

只要相邻两个线程组之间的等待时间间隔没有超过2000ms的超时时间,则会等待全部100个线程达到才释放。

否则会停止等待立即释放,比如,在等待第24个线程到达定时器时,计时器时间超过2000ms了,则定时器停止等待,立即释放到达的23个线程。

▲ 注意事项

在使用同步定时器时,请注意如下事项:

  • 1.超时时间设置合理性
Timeout > 1000*(Number of Simulated Users to Group by)*(Ramp-Up Period)/(Number of Threads)
其中,Timeout为超时时间(单位ms),
Number of Simulated Users to Group by为一次性释放线程数(并发数)
Ramp-Up Period为线程组下所有线程的加载时间
Number of Threads为线程组下所有线程数
比如在线程组中设置10秒内要加载完200个线程,并在同步定时器中设置并发数为100,则超时时间设置须满足如下条件:
Timeout > 1000*100*10/200 ms = 5000 ms
  • 2.同步定时器仅对同一JVM中的线程有效,因此在分布式测试中不要使用,因为当JMeter分布式部署执行性能测试时,测试计划分发到不同的Slave上执行,为了确定是否满足线程释放条件,各台Slave上的JVM需要相互通信才能确定,实现困难且即使实现了也难免存在延时,这样就不能保证真实的并发。所以目前JMeter的做法是仅支持单个JVM。

三、应用案例

这里以ECshop前台系统登录并发为例。

假设默认50个用户并发登录。

添加同步定时器,将释放线程数设置为50,超时时间设置为1000ms。

如下图所示:

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

更多推荐

华为云CodeArts产品体验的心得体会及想法

文章目录前言CodeArts的产品优势一站式软件开发生产线研发安全Built-In华为多年研发实践能力及规范外溢高质高效敏捷交付功能特性说明体验感受问题描述完结前言华为云作为一家全球领先的云计算服务提供商,致力于为企业和个人用户提供高效、安全、可靠的云服务。在其众多产品中,CodeArts作为一款全新的开发工具集,为开

【STM32】基础知识 第十一课 sys, delay & usart 文件夹

【STM32】基础知识第十一课sys,delay&usart文件夹sys文件介绍delay文件夹函数简介SysTickSysTick工作原理SysTick寄存器介绍delay_init()函数delay_us()函数usart文件夹介绍printf的使用常用输出控制符表常用转椅字符表半主机模式简介sys文件介绍函数分类

苹果从成熟到落地,Apple Newton 背后的工程师们 | 历史上的今天

整理|王启隆透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。1983年3月的最后一个星期日,史蒂夫·乔布斯(SteveJobs)和时任百事公司总裁约翰·斯卡利(JonSculley)坐在阳台上俯瞰纽约中央公园。在深思熟虑之后,斯卡利对着眼前年轻人说:“我们已经互相了解彼此,但是,史蒂夫,我已经考虑过了,我不会

Linux系统使用(超详细)

目录Linux操作系统简介Linux和windows区别Linux常见命令Linux目录结构Linux命令提示符常用命令lscdpwdtouchcatechomkdirrmcpmvvimvim的基本使用grepnetstatLinux面试题Linux操作系统简介Linux操作系统是和windows操作系统是并列的关系。

STM32H5开发(3)----电源控制&RCC

STM32H5开发----3.电源控制&RCCSTM32H503供电样品申请STM32H562/563/573LDO供电STM32H562/563/573SMPS供电LDO/SMPS供电PWR特性电源电压监测温度监测低功耗模式低功耗模式-SLEEP模式低功耗模式-STOP模式低功耗模式-STANDBY模式低功耗模式监控

2023年中职组“网络安全”赛项吉安市竞赛任务书

2023年中职组“网络安全”赛项吉安市竞赛任务书一、竞赛时间总计:360分钟竞赛阶段竞赛阶段任务阶段竞赛任务竞赛时间分值A模块A-1登录安全加固180分钟200分A-2本地安全策略配置A-3流量完整性保护A-4事件监控A-5服务加固A-6防火墙策略B模块B-1Windows操作系统渗透测试400分B-2隐藏信息探索B-

STM32 ADC基础知识讲解

文章目录前言一、ADC的基本介绍二、STM32ADC讲解1.ADC分辨率2.ADC通道讲解3.ADC转换模式单次转换模式连续转换模式4.扫描模式5.数据对齐方式左对齐右对齐总结前言在正式的学习如何编写ADC代码时我们先来学习一下ADC的基础知识部分,只有掌握好了这些基础知识才能顺利的进行后面的代码编写。一、ADC的基本

.NET网络编程——TCP通信

一、网络编程的基本概念:1.网络就是将不同区域的电脑连接到一起,组成局域网、城域网或广域网。把分部在不同地理区域的计算机于专门的外部设备用通信线路互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。2.计算机网络通过传输介质、通信设施和网络通信协议,将地理位置相

git 常用命令有哪些

Git是我们开发工作中使用频率极高的工具,下面总结下他的基本指令有哪些,顺便温习一下。前言一般项目中长存2个分支:主分支(master)和开发分支(develop)项目存在三种短期分支:功能分支(featurebranch)补丁分支(hotfixbranch)预发分支(releasebranch)一旦完成开发,它们就会

Spring MVC拦截器和跨域请求

一、拦截器简介SpringMVC的拦截器(Interceptor)也是AOP思想的一种实现方式。它与Servlet的过滤器(Filter)功能类似,主要用于拦截用户的请求并做相应的处理,通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。拦截器和过滤器的区别拦截器是SpringMVC组件,而过滤器是Ser

docker系列(8) - docker网络

文章目录8.docker网络8.1四种网络模式8.2常用命令8.3桥接网络模式8.3.1桥接网络模式说明8.3.2桥接网络模式案例8.4host网络模式8.4.1host网络模式说明8.4.2host模式案例8.5none网络模式8.5container网络模式8.5.1container网络模式说明8.5.2cont

热文推荐