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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
7月前
|
测试技术
性能测试和负载测试的区别
性能测试和负载测试的区别
|
7月前
|
监控 测试技术 Apache
性能测试工作如何开展?
性能测试工作如何开展?
|
1月前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
52 7
|
5月前
|
测试技术 Apache Scala
性能测试方法与工具比较
性能测试方法与工具比较
|
7月前
|
测试技术
性能测试-LoadRunner
性能测试-LoadRunner
|
7月前
|
关系型数据库 MySQL 测试技术
协程的调度实现与性能测试
协程的调度实现与性能测试
|
监控 测试技术 应用服务中间件
系统性能测试
系统性能测试
157 0
|
存储 测试技术 数据格式
性能测试(18)——逻辑控制器
注意点: 变量前缀:变量前缀就是jmeter中的变量,如提取器中提取的变量,或者使用BeanShell设置的全局变量 开始循环字段:因为ForEach本质就是一个遍历,所以遍历的数据是列表类型,每个数据都有下标,这里表示的是从列表的第几个元素开始遍历,最低数值是-1,由于是不包含,所以-1其实是从0开始。 结束循环字段:列表下标的结束终点下标,不设置的情况下,默认会遍历到列表最后一位,如果设置了,则达到指定下标则停止遍历,并且是包含状态,因此会走到指定的下标。 输出变量:将遍历出来的元素使用变量名称存储起来。 数字之前加下划线:例如用户自定义变量中的数据格式为data_1,data_2,只有这
97 0
|
监控 Devops 测试技术
性能测试的时机
性能测试的时机
158 0
|
测试技术 索引
性能测试 接口性能测试需要注意的点
性能测试 接口性能测试需要注意的点
1547 0