性能测试(19)——定时器

简介: loadrunner称为集合点,SyncTimer的目的是阻塞线程,直到阻塞了n个线程,然后立即释放它们。 同步定时器相当于一个储蓄池,累积一定的请求,当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起并发,所以可以用来做大数据量的并发请求。添加方式:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Synchronizing Timer

1、同步定时器 (Synchronizing Timer)

loadrunner称为集合点,SyncTimer的目的是阻塞线程,直到阻塞了n个线程,然后立即释放它们。 同步定时器相当于一个储蓄池,累积一定的请求,当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起并发,所以可以用来做大数据量的并发请求。
添加方式:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Synchronizing Timer
注意:定时器一定要放在HTTP请求下,不要和HTTP同级。
有2个参数设置

  • 模拟用户组的数量(Number of Simulated Users to Group by) 也就是并发数,集合多少请求后一起发出去
  • 超时时间以毫秒为单位(Timeout in milliseconds) 指定人数多少秒没集合到算超时,默认为0,会一直等。设置500毫秒的话,如果500毫秒内凑齐并发数,就先发出去了。

案例:
新增线程组,设置线程数(用户数)为200,启动时间为10秒,那么200/10 = 20,就是每1秒钟就会增长20个用户数,需要10秒才能达到200的用户数
image.png
新增同步定时器,设置用户数为20,也就是当线程数达到20的时候,才会在同一时间并发发送请求。
如果最终人数不够20人,那么可以设置超时,我设置的是20秒,比如线程组用户数为200,设置定时器模拟人数为30,那么达到180的时候,最后线程组还可以模拟20个人,但是定时器需要30人,就会死锁,无线等待,因此设置超时释放是有必要的。
image.png
最后通过表格查看结果去查看是否在同一个时间内并发20个请求,如图所示,在一秒钟内,并发了20个请求,说明同步定时器设置成功。
image.png

2、吞吐量控制器(Constant Throughput Timer)

通过控制每分钟请求数(即控制吞吐的方式)来控制是否进行延时暂停。 例如,当我们需要使服务端长期处于一定的压力下时,可以通过该定时器来控制吞吐。
案例:
1、新建线程,用户数为1,启动时间为1,设置永久循环,不用户循环的话,无法持续进行稳定性测试
image.png
2、测试没有吞吐量定时器时,QPS为多少,如图可以看见,极限吞吐量大概在30左右。
image.png
3、设置吞吐量定时器,比如设置为每秒吞吐量为10,一个用户,吞吐量定时器是以每分钟来计算的,那么我们需要先计算一下。一分钟=60秒,每秒钟10qps /线程数1 X 60秒 = 600,那么需要设置目标吞吐量为600即可。
为什么要除以线程数1呢,因为--This thread only :分别控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以线程的数量。
五个选择项代表的意思:
image.png
this thread only:表示控制每个线程的吞吐量,选择这种模式 时,总的吞吐量为设置的目标吞吐量乘以线程的数量。
all active threads:表示设置的目标吞吐量将分配在每个活跃 线程上。每个活跃线程在上一次运行结束后等待合理的时间后 再次运行。活跃线程指某一时刻同时运行的线程。
all active threads in current thread group:表示设置的目标吞 吐量将分配在当前线程组的每一个活跃线程上,当测试计划中 只有一个线程组时,该选项和all active threads选项的效果完 全相同。
all active threads(shared):与all active threads选项基本相 同,区别是每个活跃线程都会在所有活跃线程上一次运行结束 后等待合理的时间后再次运行。
all active threads in current thread group (shared):与all active threads in current thread group选项基本相同,区别是 每个活跃线程都会在所有活跃线程的上一次运行结束后等待合 理的时间后再次运行。
image.png
4、查看结果,可以看到,获取用户信息接口QPS成功限制在了10/sec
image.png

3、固定定时器

就是一个强制等待,到了时间再发送请求,放在HTTP请求下
image.png

目录
相关文章
|
算法 JavaScript
(最简易版本2)js笛卡尔积生成商品SKU多规格算法
首先这篇文章得仔细看,上面是我出的第一版本多规格算法可以去看一下思路
669 0
(最简易版本2)js笛卡尔积生成商品SKU多规格算法
|
开发框架 算法 安全
RFID 卡片型号及卡号获取 | 学习笔记
快速学习 RFID 卡片型号及卡号获取
RFID 卡片型号及卡号获取 | 学习笔记
|
消息中间件 SQL JSON
阿里云物联网平台 “物模型属性” 的分析&&易错点&&上报属性时Payload如何正确组装?
您是否在纠结设备上报了数据,平台到底有没有收到? 您是否很疑惑物模型属性怎么老是不刷新? 您是否不理解物模型属性下发总是不生效? 您是否不知道上报属性时Payload到底该怎么填? 您是否很纳闷物模型属性一会又携带有时间戳,一会又没有? 您是否怀疑能不能自定义物模型属性的时间戳?又如何取到自定义时间戳? 您是否...
9242 3
阿里云物联网平台 “物模型属性” 的分析&&易错点&&上报属性时Payload如何正确组装?
|
6月前
|
SQL 数据采集 自然语言处理
04_用LLM分析数据:从表格到可视化报告
在当今数据驱动的时代,数据分析和可视化已成为商业决策、科学研究和日常工作中不可或缺的部分。随着大型语言模型(LLM)技术的飞速发展,2025年的数据分析领域正经历一场革命。传统的数据处理流程通常需要数据科学家掌握复杂的编程技能和统计知识,而现在,借助先进的LLM技术,即使是非技术人员也能轻松地从原始数据中获取洞见并创建专业的可视化报告。
645 1
|
小程序 Java 关系型数据库
weixin117新闻资讯系统设计+springboot(文档+源码)_kaic
本文介绍了一款基于微信小程序的新闻资讯系统,涵盖其开发全过程。该系统采用Java的SSM框架进行后台管理开发,使用MySQL作为本地数据库,并借助微信开发者工具确保稳定性。管理员可通过个人中心、用户管理等功能模块实现高效管理,而用户则能注册登录并查看新闻与视频内容。系统设计注重可行性分析(技术、经济、操作),强调安全性与数据完整性,界面简洁易用,功能全面,极大提升了信息管理效率及用户体验。关键词包括基于微信小程序的新闻资讯系统、SSM框架和MYSQL数据库。
|
计算机视觉
5.1.2.3 目标检测基本概念和YOLOv3设计思想——交并比 NMS
这篇文章详细解释了目标检测中的关键概念交并比(IoU)和非极大值抑制(NMS),包括它们的定义、计算方法和在目标检测中的应用,以及如何使用这些技术来优化预测结果和减少冗余预测框。
|
SQL 关系型数据库 数据建模
Dify数据库结构导出到PowerDesigner
Dify是开源大语言模型应用开发平台,助力快速构建生成式AI应用。PowerDesigner是SAP的企业级建模工具,用于数据建模、业务流程建模和企业架构规划。通过PostgreSQL的`pg_dump`导出表结构到SQL文件,然后在PowerDesigner中导入生成物理数据模型,从而实现Dify数据库结构到PowerDesigner的迁移。
1148 1
|
JavaScript jenkins Devops
【DevOps】jekinsBuild step ‘Execute shell‘ marked build as failure
【DevOps】jekinsBuild step ‘Execute shell‘ marked build as failure
2090 1
|
canal 缓存 关系型数据库
高并发场景下,6种方案,保证缓存和数据库的最终一致性!
在解决缓存一致性的过程中,有多种途径可以保证缓存的最终一致性,应该根据场景来设计合适的方案,读多写少的场景下,可以选择采用“Cache-Aside结合消费数据库日志做补偿”的方案,写多的场景下,可以选择采用“Write-Through结合分布式锁”的方案,写多的极端场景下,可以选择采用“Write-Behind”的方案。
2739 0