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

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

"泊松随机定时器"(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和偏移量,测试工程师能够创建更加复杂和真实的负载模型,从而提高测试的有效性和准确性。在设计测试计划时,应综合考虑测试目标、系统特性以及期望模拟的用户行为模式,来决定是否以及如何使用泊松随机定时器。

相关推荐
秋殇大大2 天前
python API自动化(基于Flask搭建MockServer)
运维·python·jmeter·自动化
刘大晶2 天前
Jmeter下载、安装及配置
jmeter
木只少吃点2 天前
Jmeter 性能测试如何设计混合场景
jmeter
IT利刃出鞘3 天前
JMeter--定时执行的方法
jmeter
宇文诸3 天前
jmeter-beanshell学习1-vars使用获取变量和设置变量
jmeter
测试19984 天前
Jmeter 进行http接口测试
自动化测试·软件测试·python·网络协议·jmeter·http·单元测试
测试界的世清4 天前
selenium测试框架快速搭建(ui自动化测试)
开发语言·selenium·测试工具·jmeter·ui
奔波儿灞爱霸波尔奔4 天前
浅谈定时器之JSR223 定时器
jmeter
小绵羊不怕大灰狼4 天前
Apache Jmeter各组件使用方式详解
jmeter