性能测试(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

目录
相关文章
|
开发框架 算法 安全
RFID 卡片型号及卡号获取 | 学习笔记
快速学习 RFID 卡片型号及卡号获取
RFID 卡片型号及卡号获取 | 学习笔记
|
8月前
|
小程序 Java 关系型数据库
weixin117新闻资讯系统设计+springboot(文档+源码)_kaic
本文介绍了一款基于微信小程序的新闻资讯系统,涵盖其开发全过程。该系统采用Java的SSM框架进行后台管理开发,使用MySQL作为本地数据库,并借助微信开发者工具确保稳定性。管理员可通过个人中心、用户管理等功能模块实现高效管理,而用户则能注册登录并查看新闻与视频内容。系统设计注重可行性分析(技术、经济、操作),强调安全性与数据完整性,界面简洁易用,功能全面,极大提升了信息管理效率及用户体验。关键词包括基于微信小程序的新闻资讯系统、SSM框架和MYSQL数据库。
|
Web App开发 数据采集 移动开发
HTML5新增的属性和标签
HTML5新增的属性和标签
479 0
|
测试技术 网络安全
性能测试(20)——分布式压测
在使用JMeter进行性能测试时,如果并发数比较大(比如项目需要支持10000并发),单台电脑的(CPU和内存)可能无法支持,这时 可以使用JMeter提供的分布式测试的功能。
685 0
性能测试(20)——分布式压测
|
SQL 缓存 监控
性能测试(23)——完整性能项目案例
性能测试需求分析与传统的功能测试需求有所不同 功能测试需求分析:重点在于分析被测系统的功能是否满足产品功能需求规格(正向、逆向) 性能测试需求分析:重点在于分析被测系统是否能满足特定的业务需求场景(时间、资源) 需要从业务场景、程序代码、服务器、硬件配置等多个维度分析系统可能存在性能瓶颈
5139 1
|
运维 监控
zabbix 触发器之count函数
zabbix监控中使用count函数,可以设置连续几次都异常才发出告警,确认多次以减少了很多误告警,提高了运维效率,这样一来,只要发出告警基本上就已经确定发生故障了。
|
网络协议 JavaScript 前端开发
将websocket封装成一个class,断线可重连
将websocket封装成一个class,断线可重连
525 3
|
前端开发 JavaScript 安全
性能测试(3)——性能指标
指客户端向服务端发送请求时,所有的页面资源元素的请求的总数量。 点击数不是通常一般人认为的访问一个页面就是1次点击数,点击数是该页面包含的元素(图片、链接、框架等)向Web服 务器发出的请求数量。 通常我们也用每秒点击次数(Hits per Second)指标来衡量Web服务器的处理能力。 强调:非业务请求,是资源请求,如js,css等 ,只有web项目才有此指标 。
743 0
|
监控 Oracle 关系型数据库
性能测试(4)——性能测试流程
1、从业务角度明确测试内容 确定关键业务。即:用户使用频率较高的业务功能 2、从技术角度明确测试内容 如:通常逻辑复杂度较高的业务也是CPU密集运算较大的地方,考量服务器CPU在预定性能指标下是否达标 如:通常数据量较大的业务很占用系统内存,考量服务器内存在预定性能指标下是否达标
448 0
性能测试(4)——性能测试流程
|
测试技术
如何高质量的做BUG分析
如何高质量的做BUG分析
471 0