浅谈性能测试稳定性 Constant Throughput Timer(常数吞吐量定时器)

在性能测试过程中总会收到一些需求如:单接口每秒并发20,这种并发持续60秒,通过负载测试查看系统稳定性,今天就让我们来浅谈一下这种场景如何去实现性能测试~

这种场景可以用两种方法去实现:

一、我们通过控制总线程数和Ramp-Up来控制并发,让它的线程慢慢增压,因为只有一个接口,所以执行时是偏快的

我们把线程数设置为20*60=1200,Ramp-Up设置为60,循环次数为1

这样设置我们来看下聚合报告,也是符合我们的需求,但没有那么准确的确保每秒都并发20,这种概率偏随机

可以发现它的Transactions per Second图中的事务数是这种忽高忽低,所以可以和第二种放发一起选择,选择适合的方法

二、第二种就要用到这篇文章的主角了Constant Throughput Timer(常数吞吐量定时器)

首先将线程组设置为20,循环次数60大道每秒并发20持续60秒的结果

其次就用到Constant Throughput Timer(常数吞吐量定时器)了,我们设置目标吞吐量(每分钟的样本量)为20*60=1200,注意这里的单位是分钟

那基于计算吞吐量怎么选择呢?在这种情况里我们选择了所有活动线程,但不同种情况可以选择不同的用法

只有此线程(This thread only)

  • 解释:当选择这个选项时,吞吐量目标仅针对当前设置了定时器的线程。这意味着设置的目标吞吐量(Target Throughput)将完全由这个线程来实现。

  • 用法:如果你想要单独测试某个线程的性能,并确保其达到特定的吞吐量目标,可以选择这个选项。例如,如果你有一个线程负责处理特定的业务逻辑,并希望它能够达到每秒10个请求(RPS)的吞吐量,你可以在该线程上添加Constant Throughput Timer并设置Target Throughput为600(因为一分钟有60秒,所以10 RPS = 600 RPS/分钟)。

所有活动线程(All active threads)

  • 解释:这个选项将吞吐量目标分配到当前所有活动的线程上。这意味着所有当前正在运行的线程都将共同分担实现总吞吐量目标的责任。

  • 用法:如果你有一个包含多个线程的测试计划,并且希望所有线程共同工作以达到某个总的吞吐量目标,可以选择这个选项。但是,需要注意的是,由于线程的执行可能不是完全同步的,因此每个线程实际达到的吞吐量可能会有所不同。

当前线程组中的所有活动线程(All active threads in current thread group)

  • 解释:这个选项与"所有活动线程"类似,但它仅针对当前线程组中的线程。如果你在一个测试计划中有多个线程组,这个选项将确保只有当前线程组中的线程参与实现吞吐量目标。

  • 用法:如果你想要隔离并测试某个线程组的性能,可以选择这个选项。这样,你可以确保只有该线程组中的线程被考虑在内,而不会受到其他线程组的影响。

所有活动线程(共享)(All active threads (shared))

  • 解释:这个选项类似于"所有活动线程",但它具有一个额外的特性:每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。这有助于确保所有线程都能够均匀地分担吞吐量目标的责任。

  • 用法:如果你想要确保所有线程都能够以相对均匀的方式分担吞吐量目标的责任,可以选择这个选项。这有助于避免某些线程过于繁忙而其他线程则相对空闲的情况。

归纳:

  • 单独测试:如果你想要单独测试某个线程或线程组的性能,可以选择"只有此线程"或"当前线程组中的所有活动线程"。
  • 协同测试:如果你想要多个线程或线程组共同工作以达到某个总的吞吐量目标,可以选择"所有活动线程"或"所有活动线程(共享)"。

最后我们看下执行的集合报告和TPS图,相对于第一种方法每秒的事务数更加稳定,可以精确的将每秒的并发控制在20来控制系统的稳定性了~

相关推荐
云边的快乐猫6 小时前
Jmeter下载安装配置教程(多版本)
jmeter
十二测试录6 小时前
Jmeter自学【8】- 使用JMeter模拟设备通过MQTT发送数据
经验分享·测试工具·jmeter·程序人生·自动化
字节程序员1 天前
从一次线上故障聊聊接口自动化测试
jmeter·测试用例
默金……1 天前
jmeter跨进程实现变量共享-全局变量
jmeter
字节程序员2 天前
JMeter 二次开发之环境准备
jmeter
测试杂货铺2 天前
Jmeter压测实战:Jmeter二次开发之自定义函数
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
字节程序员2 天前
Jmeter对图片验证码的处理【超详细】
jmeter
测试老哥3 天前
Jmeter测试脚本编写技巧
自动化测试·软件测试·功能测试·测试工具·jmeter·职场和发展·性能测试
易思涯3 天前
【已解决】黑马点评项目jmeter高并发测试中用户数据的生成
jmeter·解决方法·黑马点评
霍格沃兹测试开发学社测试人社区3 天前
软件测试丨性能测试工具-JMeter
软件测试·测试开发·测试工具·jmeter·性能测试