JMeter测试工具Timer定时器的介绍使用
2017-10-23 19:55
309 查看
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 泊松定时器
后起之秀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,添加同步定时器,
线程数(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,用户同时并发请求 |
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 泊松定时器
相关文章推荐
- 开源压力测试工具JMeter使用介绍
- JMeter测试工具介绍和使用
- JMeter高并发测试工具的介绍和使用
- JAVA 性能测试工具 JMeter 介绍
- 性能测试工具 Lmbench的使用与介绍
- 网站压力测试工具Jmeter安装与使用
- 常见的性能测试工具介绍(netperf/httperf/apache_ab/Apache JMeter )
- 使用性能测试工具JMeter来测试网站性能1
- 在 JMeter 压力测试工具中使用函数(Function)
- apache下的ab压力测试工具使用介绍
- 开源性能测试工具--Jmeter介绍+安装说明
- 关于java的测试工具junit的使用的介绍
- [转贴]在 JMeter 压力测试工具中使用变量 和 函数
- 强大的压力测试工具Jmeter使用实例
- 开源性能测试工具--Jmeter介绍+安装说明
- [zz]Linux性能测试工具Lmbench介绍和使用说明
- 用Apache JMeter进行性能测试之五(使用同步定时器元件)
- 自动化测试工具selenium使用介绍
- 介绍两种Timer定时器的使用
- Linux压力测试工具webbench的安装使用介绍