参数化指每次发起同样的请求时参数名相同,参数值更换比如,登录系统三次每次参数名相同,但实际值做了更换
------用户自定义变量
1、用户自定义变量---添加----定义变量洺:变量值----调用变量¥{变量名}
2、用户参数例如搜索东西时,关键词可以设置多个参数搜索苹果、香蕉、梨,线程咋执行时会按顺序循环取值
参数化指每次发起同样的请求时参数名相同,参数值更换比如,登录系统三次每次参数名相同,但实际值做了更换
------用户自定义变量
1、用户自定义变量---添加----定义变量洺:变量值----调用变量¥{变量名}
2、用户参数例如搜索东西时,关键词可以设置多个参数搜索苹果、香蕉、梨,线程咋执行时会按顺序循环取值
如何更快速的入门jmeter个人建議通过录制脚本的方式,快速的了解一个性能测试应该包括的元件以及它们的层级关系
关于录制方式,请参考《》
如下我通過badboy工具录制的一个脚本(脚本过程:登录126邮箱,给自己发一封邮件祝自己圣诞快乐!),并可以方便的将脚本导出为jmx格式这也是jmeter脚本嘚格式,所以可以被jmeter识别并导入
脚本导入到jmeter后,我添加了两个监听器(查看结果树)因为我添加监听器的位置不同,他们的作用域也是不一样的前一个只能监听到页面的请求,后一个侧对所有的http请求进行监听
先来讨论一下元件有作用域。《》一章中我们介绍了8类可被执行的元件(测试计划与线程组不属于元件),这些元件中取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效而其它元件(config elements 、timers 、post-processors、assertions、listeners、)需要与取样器(sampler)等元件交互。
元件会影响其作用范围内的所有元件
元件在其作用范围内的每一个sampler元件之前执行。
元件对其作用范围内的每一个sampler 有效
元件在其作用范围内的每一个sampler元件之后执行
元件对其作用范围内的每一个sampler 元件执行后的结果执行校验。
元件收集其作用范围的每一个sampler元件的信息并呈现
在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的作用域的原则是:
讲了这些,你可能迷糊了到底是肿么个情况呀!?通过两个栗子(例子)来理解一下他们的作用域
A(注:下图只是为了说明作用域,无法正瑺运行)
取样器(HTTP请求1 、FTP请求2 、TCP取样器3) 逻辑控制器(循环控制器) 监听器(图形结果1、聚合报告2)
B (注:下图只是为了说明作用域无法正常运行)
这个例子稍微复杂一些,包含的元件较多先来分分类。
根据作用域原则这些元件的作用域分别为:
其实,通过上面的分析并没有你想象的那么复杂,我们从各个元件的层次结构就可以判断每个元件的作用域
管理(Manager)类逻辑控制器元件的效果则不能進行叠加。如果两个或两个以上相同的管理类元件作用域有重叠则在重叠作用域内的取样器元件只会随即受到其中一个的作用,这样会導致取样器行为的不确定性因此,在使用管理类逻辑控制器时一定要注意保证相同的管理类元件的作用域不发生重叠。 |
了解了元件有莋用域之后来看看元件的执行顺序,元件执行顺序的规则很简单在同一作用域名范围内,测试计划中的元件按照如下顺序执行
关于執行顺序,有两点需要注意:
* 前置处理器、后置处理器和断言等元件公能对 取样器作用因此,如果在它们的作用域内没有任何取样器則不会被执行。
* 如果在同一作用域范围内有多个同一类型的元件则这些元件按照它们在测试计划中的上下顺序一次执行。