浅谈定时器之泊松随机定时器

浅谈定时器之泊松随机定时器

"泊松随机定时器"(Poisson Random Timer),它允许你基于泊松分布来随机化请求之间的延迟时间,这对于模拟具有随机到达率的事件特别有用,如用户访问网站或服务的请求。

泊松分布简介

泊松分布是一种统计与概率论中常见的离散概率分布,常用于描述在给定时间内,某个事件发生固定次数的概率。例如,在网站访问场景中,泊松分布可以用来模拟单位时间内用户请求的随机到达模式。

泊松随机定时器的工作原理

该定时器在每个线程(即虚拟用户)发送请求之前,会根据泊松分布计算出一个随机的延迟时间。这意味着请求之间的等待时间将遵循一种统计规律,而不是完全随机或者固定不变,从而更贴近实际用户的访问模式。

配置参数

  1. Lambda (in milliseconds): 这是泊松分布的一个关键参数,表示期望的事件发生率,单位是毫秒。简单来说,如果你设置Lambda为1000ms,意味着期望每秒钟有一个事件发生。JMeter会根据这个参数计算出一个随机的延迟时间。
  2. Constant Delay Offset (in milliseconds): 这是一个固定的偏移量,会在计算出的泊松分布延迟时间上加上这个值。它可以用来确保请求之间至少有最短的等待时间。

使用场景

● 模拟真实用户流量:当需要模拟不定期但平均速率恒定的用户请求时,泊松随机定时器非常有效。

● 压力测试:在进行压力测试时,可以利用此定时器来模拟突发的用户访问高峰,以评估系统的稳定性。

● 负载均衡测试:在测试系统如何处理随机分布的负载时,可以使用此定时器来模拟不同时间段内的负载变化。

应用实例

我们编写如下脚本

线程组:线程数设置为15,其他默认

泊松随机定时器:Lambda (in milliseconds)设置为1000,Constant Delay Offset (in milliseconds)设置为3000

BeanShell 取样器:编写如下脚本

java 复制代码
log.info("test");

运行脚本,查看JMeter脚本日志如下

2024-07-01 15:19:05,893 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,010 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,034 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,078 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,154 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,163 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,341 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,380 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,469 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,481 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,523 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,643 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,702 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,800 INFO o.a.j.u.BeanShellTestElement: test

2024-07-01 15:19:06,915 INFO o.a.j.u.BeanShellTestElement: test

泊松分布知识可以通过如下链接了解泊松分布

注意事项

● 性能影响:虽然泊松随机定时器能更真实地模拟用户行为,但它相比固定延迟可能会增加测试执行的不确定性,影响测试结果的可重复性。

● 参数调整:Lambda值的选择需要基于对被测系统的了解和预期的用户行为分析,错误的设置可能导致测试结果失真。

● 资源消耗:在大量线程下使用此定时器可能增加CPU的使用率,因为每次延迟都需要计算。

总结

泊松随机定时器是JMeter中一个高级且功能强大的组件,它使得性能测试能够更加贴近实际情况,尤其是在需要模拟随机到达请求的场景下。通过合理配置Lambda和偏移量,测试工程师能够创建更加复杂和真实的负载模型,从而提高测试的有效性和准确性。在设计测试计划时,应综合考虑测试目标、系统特性以及期望模拟的用户行为模式,来决定是否以及如何使用泊松随机定时器。

相关推荐
是小章啊17 分钟前
Jmeter压测实战之HTTP_POST
网络协议·jmeter·http
古城小栈2 天前
封神!Rust 出品 HTTP 压测神器 cargo-whero,轻量碾压 JMeter、wrk,新手也能秒上手
jmeter·http·rust
_周游2 天前
【软件测试】使用JMeter进行压力测试_3
jmeter·压力测试
EVE จุ๊บ4 天前
如何修改mac上的jmeter堆内存
jmeter·macos
狼爷4 天前
JMeter 全指南:从性能测试入门到架构级实战
jmeter·测试
雪碧聊技术7 天前
什么是压力测试?压力测试的工具有哪些?一文详解
jmeter·压力测试·wrk
弹简特8 天前
【精通JMeter接口测试-完结】05-JMeter通关收官!BeanShell和接口签名
jmeter·beanshell·接口签名
某人辛木9 天前
JMeter下载安装配置
jmeter
查拉图斯特拉面条10 天前
JMeter脚本中断排查:CSV配置导致线程提前终止
jmeter