JMeter测试工具Timer定时器的介绍使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011466469/article/details/78322513
JMeter常被定义成性能测试工具或是自动化测试工具,都没错,它就是测试工具,关键看你怎么使用它;
后起之秀JMeter与革命前辈Loadrunner比较,timer可以根据实际场景设置思考时间用于等待或是集合点同时并发;
言归正传,我们来看看Jmeter的timer成员有哪些,具体作用是什么?

1、Constant Timer 等待时间(思考时间)

Constant Timer
Name:恒定时间元件名称(可以理解是等待(思考)时间),
Comments:注释,随意;
Thread Delay(in milliseconds):线程等待时间,单位毫秒;
tips:用法(场景),更真实的模拟用户场景,需要设置等待时间,或是等待上一个请求的时间,才执行,给sampler之间的思考时间;
2、Synchronizing Timer 集合时间(集合点)

Synchronizing Timer
Name:Synchronizing Timer 同步定时器名称(集合点)
Comments:注释,可以让定时器变得有意思,一目了然;
Grouping
Number of Simulated Users to Group by: 同组用户数量,设置为0,等效于线程组中的线程数(Number of Threads(users));
Timeout in milliseconds:超时时间,单位毫秒,默认为0;如果设置为0,定时器等待同组的用户数,如果设置大于0,将以等待的最大线程数运行;如果超时,等待的用户数没有到达,定时器将停止等待; 如果超时了,设置并发的用户数大于线程数,那么脚本无法停止;
tips:线程组用户数100,添加同步定时器,
线程数(100)
定时器等待线程数(视情况而定)
超时设置(默认为0,单位毫秒)
设置效果(脚本运行达到的效果)
100
100
0
用户等待达到100个用户,同时并发请求
100
90
100
1、刚好超时100ms,且等到90个用户并发请求;
2、等到90个用户,未超时,继续等到结束,再并发,这时用户数将大于90;
3、等到小于90和用户,又超过了设置100ms,那么以等到的用户并发请求,可能小于90;
100
110
0
用户无法达到110个用户,线程将一直等待,不会停止;
100
100
100
1、刚好超时100ms,等到100个用户并发请求;
2、超时100ms后,定时器以等到的最大用户数并发请求;
3、如果超时100ms,用户数没有到达100,将以等到的用户数并发请求,这是用户数可能小于100;
100
0
0
定时器设置的用户数等效于线程的用户数,超时默认设置为0,用户同时并发请求
插入讲一个重点定时器:BeanShell Timer

Name:名称,随意;
Comments:注释,随意;
Reset bsh.Interpreter before each call:
Reset Interpreter:是否每次迭代重置解析器,默认false,官方建议长时间运行的脚本中设置True;
Parameters to be passed to BeadShell(=> String Parameters and Stringp[] bsh.args):
Parameters:BeanShell的入参;入参可以是单个变量,也可以是数组;
Script File (overrides script):
File Name:BeanShell 脚本可以从脚本文件中读取;
Script (Variables:ctx vars props log prev):编写的脚本(。。。),如:
try{
Thread.sleep(${sleeptime});
log.error("${sleeptime}");
log.warn(ctx.getThreadNum().toString());
vars.put("company","www.baidu.com");
log.info(vars.get("company"));
log.warn(props.get("log_level.jmeter"));
props.put("log_level.jmeter","ERROR");
log.warn(props.get("log_level.jmeter"));
}catch(InterruptedException e){
e.printStackTrace();
}
tips:解释一下脚本中调用JMeter的运行属性:
Log,直接调用log类,如log.error()写日志,info,warn等等
Ctx,可以获取JmeterContent实例获取运行时信息;如获取线程号log.info(ctx.getThreadNum().toString());
Vars,访问变量获取对应的值,也可以设置变量;如vars.put("company","www.baidu.com"); comany可以直接被其他元件调用${company}
Props,直接访问及修改Jmeter的属性,如log.warn(props.get("log_level.jmeter"));改变日至级别props.put("log_level.jmeter","ERROR");
Prev,访问前面sampler的结果,
3、Gaussian Random Timer 高斯定时器

这三类定时器,个人理解差不得太多,都有一个固定延迟时间,然后再给一个延迟偏差;
例如:Gaussian Random Timer 高斯定时器;
Gaussian Random Timer
Name:定时器的名称,随意
Comments:注释,随意;
Tread Delay Properties:单位都是毫秒, 固定延迟300ms,偏差100ms,意思是时间延迟300-400ms之间;
Deviation (in milliseconds):偏差值,是一个浮动范围;
Constant Delay offset (in milliseconds):固定延迟时间
4、Uniform Random Timer 暂停一个随机时间;

同上解读,只是偏差是随机,意思:0-100ms之间,可能是55ms
5、Poisson Random Timer 泊松定时器

同上

猜你喜欢

转载自blog.csdn.net/u011466469/article/details/78322513