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

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

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

相关推荐
古人诚不我欺13 小时前
jmeter常用配置元件介绍总结之分布式压测
分布式·jmeter
綦枫Maple20 小时前
Jmeter基础篇(22)服务器性能监测工具Nmon的使用
运维·服务器·jmeter·性能监控·nmon
古人诚不我欺21 小时前
jmeter常用配置元件介绍总结之线程组
java·开发语言·jmeter
惜.己21 小时前
Jmeter中的监听器(一)
测试工具·jmeter·1024程序员节
我非夏日2 天前
JMeter进阶篇
jmeter
惜.己2 天前
Jmeter中的配置原件(三)
功能测试·测试工具·jmeter·1024程序员节
綦枫Maple2 天前
Jmeter基础篇(23)TPS和QPS的异同
数据库·jmeter·oracle
惜.己2 天前
Jmeter中的配置原件(二)
测试工具·jmeter·1024程序员节
我非夏日2 天前
JMeter项目实战
jmeter
川石课堂软件测试2 天前
性能测试|JMeter接口与性能测试项目
javascript·数据库·python·jmeter·单元测试