JMeter测试工具Timer定时器的介绍使用
JMeter常被定义成性能测试工具或是自动化测试工具,都没错,它就是测试工具,关键看你怎么使用它;
后起之秀JMeter与革命前辈Loadrunner比较,timer可以根据实际场景设置思考时间用于等待或是集合点同时并发;
言归正传,我们来看看Jmeter的timer成员有哪些,具体作用是什么?
1、Constant Timer 等待时间(思考时间)
Name:恒定时间元件名称(可以理解是等待(思考)时间),
Comments:注释,随意;
Thread Delay(in milliseconds):线程等待时间,单位毫秒;
tips:用法(场景),更真实的模拟用户场景,需要设置等待时间,或是等待上一个请求的时间,才执行,给sampler之间的思考时间;
2、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,添加同步定时器,
插入讲一个重点定时器: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 高斯定时器;
Name:定时器的名称,随意
Comments:注释,随意;
Tread Delay Properties:单位都是毫秒,固定延迟300ms,偏差100ms,意思是时间延迟300-400ms之间;
Deviation (in milliseconds):偏差值,是一个浮动范围;
Constant Delay offset (in milliseconds):固定延迟时间
4、Uniform Random Timer 暂停一个随机时间;
5、Poisson Random Timer 泊松定时器