背景
jmeter并发测试每个请求之间是没有延时的,但实际工作有时候需要增加固定时间来测试,那么可以Jmeter定器组件,完成工作。其实这些知识百度一查就出来,为什么还要写,主要方便自己复习,要找的时候就从自己文章中找出,而且这些自己通过自己调试后,直接可以拿出来用。
定时器
- Constant Timer 固定定时器
- Uniform Random Timer 均匀随机定时器
- Constant Throughput Timer 固定吞吐量定时器
- Gaussian Random Timer 高斯随机定时器
- JSR223 Timer JSR223定时器
- Poisson Random Timer 泊松随机定时器
- Synchronizing Timer 同步定时器
- BeanShell Timer BeanShell脚本编写定时器
- Precise Throughput Timer 精准吞吐量定时器
截图:
1、Constant Timer 固定定时器
作用:通过ThreadDelay设定每个线程请求之前的等待时间(单位为毫秒)。
2、Uniform Random Timer 均匀随机定时器
3、Constant Throughput Timer 固定吞吐量定时器
- this thread only: 设置每个线程的吞吐量。总的吞吐量=线程数*该值。
- all active threads in current thread group:吞吐量被分摊到当前线程组所有的活动线程上。每个线程将根据上次运行时间延迟。
- all active threads:吞吐量被分配到所有线程组的所有活动线程的总吞吐量。每个线程将根据上次运行时间延迟。在这种情况下,每个线程组需要一个具有相同设置的固定吞吐量定时器。(不常用)
- all active threads in current thread group (shared):同上,但是每个线程是根据组中的线程的上一次运行时间来延迟。相当于线程组组内排队。(不常用)
- all active threads (shared):同上,但每个线程是根据线程的上次运行时间来延迟。相当于让所有线程组整体排队。(不常用)
4、Gaussian Random Timer 高斯随机定时器
5、JSR223 Timer JSR223定时器
JSR223计时器可以使用JSR223脚本语言生成延迟;
参考帮助文档:
https://jmeter.apache.org/usermanual/component_reference.html#JSR223_Timer
6、Poisson Random Timer 泊松随机定时器
7、Synchronizing Timer 同步定时器
8、BeanShell Timer BeanShell脚本编写定时器
参数说明:
- Reset Interpreter:每次迭代是否重置解析器,默认为false;在长时间运行的脚本中建议设置为true。
- Parameters:BeanShell脚本的入参。入参可以是单个变量;也可以是数组,若是字符串数组,两个元素之间用空格隔开;也可以是常量。
- File Name:BeanShell脚本可以从脚本文件中读取。
- Script:在Script区直接写BeanShell脚本。
简单写一demo增加一个sleep等待一分钟:
try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }
增加一个Java Request请求,并且增加时间验证是否按照自己设定的定时运行脚本:
Java Request ${__time(yyyy-MM-dd HH:mm:ss:SSS,)}
增加结果查看树:
结果显示按之前设置的每个1秒钟运行
9、Precise Throughput Timer 精准吞吐量定时器
Target Throught:目标吞吐量
Throught Period:表示在多长时间内发送Target Throught指定的请求数(以秒为单位)
Test Druation:指定测试运行时间(以秒为单位)
Number of threads in the bath:用来设置集合点,等到指定个数的请求后并发执行其它参数默认即可。
《劝学》
作者:荀子
青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮以为轮,其曲中规。虽有槁暴,不复挺者,輮使之然也。故木受绳则直,金就砺则利,君子博学而日参省乎己,则知明而行无过矣。