JMeter的定时器

《JMeter核心技术、性能测试与性能分析(编程与应用开发丛书)》(张永清,张永松)【摘要 书评 试读】- 京东图书

安装一下JMeter,对照起来看。https://blog.csdn.net/brucexia/article/details/151579569

在JMeter中,定时器类似于LoadRunner中的思考时间(think time),用来设置线程的延迟和同步时间,如图3-16所示。定时器通常是在每个取样器发出请求之前执行。定时器主要是有时为了让一个线程(并发用户)的操作更加符合真实的人工使用场景,比如,用户在点击某个系统某个界面上的按钮或者打开某个页面时,都会存在思考时间或者操作的延迟时间。

图3-16 如何添加定时器

从图3-16中可以看到,定时器主要包括以下内容。

3.5.1 Synchronizing Timer

Synchronizing Timer又叫同步定时器,是一种阻塞型的定时器。其目的主要用于设置每次阻塞到指定的线程数量后,一次性释放所有的阻塞的线程,再同时发起取样器请求。有点类似LoadRunner中的集合点(或者又叫同步点)。相当于是让指定的数量的线程同时达到了可执行状态后,再同时去发起取样器请求,如图3-17所示。

图3-17 Synchronizing Timer执行过程

Synchronizing Timer主要包含如下两个参数配置:

  • 模拟用户组的数量:用于设置每次让多少个线程进行阻塞,以达到统一执行的状态。
  • 超时时间以毫秒为单位:用于设置等待的时长,以让所有的线程达到可执行的状态。如果超过这个时长后,指定的所有线程还没有达到可执行的状态,那么将不再继续等待,会直接向下执行。

3.5.2 吞吐量定时器

(1)Constant Throughput Timer:又叫常数吞吐量定时器,顾名思义就是根据设置的吞吐量的值来控制线程的运行延迟。可以通过设置每分钟的吞吐量来控制线程的延迟,比如,设置1分钟内的吞吐量为30,那么如果在1分钟内已经达到30的吞吐量后,线程就会暂停发起取样器请求,直到下一分钟开始,线程才会继续发送请求。计算吞吐量的方式包括只有此线程、所有活动线程、当前线程组中的所有活动线程、所有活动线程(共享)、当前线程组中的所有活动线程(共享)。

(2)Precise Throughput Timer:又叫准确的吞吐量定时器,与Constant Throughput Timer有点类似,可以准确地根据设置的每个吞吐量周期下的目标吞吐量,来控制线程发起取样器请求的延迟时长。该定时器主要包含如下参数:

  • 目标吞吐量(每个"吞吐期"的样本):设置每个"吞吐量周期"要从所有受影响的采样器请求中获取的最大吞吐量。该设置包括线程组中的所有线程的吞吐量之和。
  • 吞吐量周期(秒):设置统计吞吐量的周期时长,单位为秒。
  • 测试持续时间(秒):设置本次吞吐量定时器运行的持续时长,单位为秒。
  • 批处理离开-批处理中的线程数(线程):用于设置批处理中的线程数量。
  • 批处理离开-批处理中的线程之间的延迟(ms):用于设置批处理中线程之间的延迟时长,单位为毫秒。
  • 随机种子(从0变为随机):设置随机数生成的种子值,默认为0,表示完全随机。

3.5.3 其他定时器

(1)固定定时器:用于设置每个线程在发起取样器请求之前等待相同的一段时长,单位为毫秒。

(2)统一随机定时器:用于设置每个线程在发起取样器请求之前随机等待一段时长,单位为毫秒。

(3)高斯随机定时器:设置每个线程在发起取样器请求之前随机等待一段时长,可以指定该时长的偏差范围。由于该定时器的偏差变化符合高斯曲线分布,所以命名为高斯随机定时器。

(4)JSR223 Timer:指的是使用JSR223(全称为Java Specification Request 223,是一个Java语言平台发布的规范)脚本语言来生成线程延迟。在JSR223 Timer中支持的脚本语言包括Groovy、Java、Javascript、Jexl等。和JSR223 预处理程序类似,JSR223 Timer同时也支持将参数传递给脚本作为参数来使用。

(5)泊松随机定时器:与统一随机定时器类似,同样也是用于设置每个线程在发起取样器请求之前随机等待一段时长,时长的单位为毫秒。与统一随机定时器不同的是,泊松随机定时器的延迟时长通常都发生在一个特定值的附近,彼此相差不会很大并且符合泊松分布,所以又叫泊松随机定时器。

(6)BeanShell Timer:即BeanShell定时器,指的是使用自定义的BeanShell脚本语言来生成线程延迟,与JSR223 Timer类似。同时它也支持将参数传递给脚本作为参数来使用。

相关推荐
测试架构师北凡2 小时前
接口测试流程+jmeter并发+面试题(总结)
自动化测试·软件测试·功能测试·软件测试工程师·jmeter·接口测试·jmeter接口测试
智星云算力2 小时前
从保存到加载Docker镜像文件操作全图解
java·spring cloud·eureka
文人sec2 小时前
性能测试-jmeter12-万能插件包管理器jmeter-plugins
测试工具·jmeter·性能优化·模块测试
文人sec2 小时前
性能测试-jmeter13-性能资源指标监控
数据库·测试工具·jmeter·性能优化·模块测试
邂逅星河浪漫3 小时前
【Spring AI】Ollama大模型-智能对话实现+项目实战(Spring Boot + Vue)
java·人工智能·spring boot·vue·prompt·agent·ollama
KWTXX3 小时前
【国二】C语言-部分典型真题
java·c语言·算法
Q_Q5110082853 小时前
python+springboot毕业季旅游一站式定制服务系统
java·spring boot·python·django·flask·node.js·旅游
杨杨杨大侠3 小时前
探索 Event 框架实战指南:微服务系统中的事件驱动通信:
java·spring boot·微服务·云原生·架构·系统架构
波波烤鸭3 小时前
Tomcat 性能优化与高并发调优
java·tomcat