目录
JMeter(一):基础概念
JMeter(二):配置元件
JMeter(三):变量参数化
JMeter(四):监听器
JMeter(五):脚本录制
JMeter(六):断言
一、简单控制器:
可以理解为分组或者打标签用,好比手机里联系人有100多个,对亲戚分一组,同学分一组等等,只是方便查询,本身没有实际意义
路径:添加-->逻辑控制器-->简单控制器
如果跑性能或接口时,涉及到多个模块,就可以使用简单控制器进行分组管理了
二、ForEach控制器
可以根据用户的多个变量依次被循环调用,直到最后一个变量被调用即结束循环
一般情况下,与用户自定义变量一起使用,格式XXX_1、XXX_2,前缀与用户自定义变量的前缀一样,具体用法在变量参数化章节有提到
路径:添加-->逻辑控制器-->ForEach控制器
三、Switch Controller
作用:只能选择一个,设置switch value时需要注意一点,索引是从0开始的
路径:添加-->逻辑控制器-->Switch Controller
四、如果(If)控制器:
作用:满足条件中的判断语句时,就执行子节点下的请求
路径:添加-->逻辑控制器-->如果(If)控制器
PS:如果是字符串,一定要在参数前面添加引号,如 "${variablename}"=="XXX"
(==表示等于,=表示赋值)
如图设置用户变量 city=beijing,如果是city是beijing,则执行GetCityName,若不是北京,则执行GetWeather
场景应用:测试一个接口,GET请求和POST请求参数写法不一样,就可以用if去判断了,如果是Get请求时执行Get请求设定的模板,如果是POST请求时执行POST请求设定的模板
五、事务控制器
作用:允许用户控制请求的执行频率,可以统计控制器下面的子节点所运行的时间
路径:添加-->逻辑控制器-->事务控制器
- Generate parent sample:不勾选时会显示子节点下面的信息,勾选时显示事务控制器的时间
- Include duration of times and pre-post processors in generated sample:是否包含思考时间,勾选时会统计定时器时间(默认仅统计采样器时间)
六、循环控制器
同时设置线程组和循环控制器,请求次数为2边的乘积
路径:添加-->逻辑控制器-->循环控制器
七、吞吐量控制器
作用:控制子节点的运行次数(执行频率)
路径:添加-->逻辑控制器-->吞吐量控制器
比如测试HH官网,总线程为5,测试环境登录页面执行2次,访问首页执行1次,访问空间指引页面执行2次
PS:总线程为5,可以是线程数1,循环5次,也可以是线程数5,循环1次
需要注意的是:
添加吞吐量控制器后默认是Percent Executions(百分比,运行比例为1~100之间),如果要设置次数的话需要改成Total Executions
勾选【Per User】时,在每个线程的基础上,每个用户都将根据控制器设置进行计算。
未被勾选时,计算针对于所有用户execution模式
不勾选Per User选项,执行次数=吞吐量值;
勾选Per User,执行次数=对应线程数 * 吞吐量值
八、随机控制器
作用:随机选取一个子节点执行
路径:添加-->逻辑控制器-->随机控制器
如图所示:随机控制器下有3个子节点,总共执行了4次,通过查看结果树发现每次执行的节点都是随机的
九、随机顺序控制器
作用:子节点执行次数一样,但顺序不一样
路径:添加-->逻辑控制器-->随机顺序控制器
如图所示:总共执行了3次,通过查看结果树发现每个子节点都被执行到了,只是顺序是随机的
十、仅一次控制器
作用:控制子节点在整个测试计划执行期间的每个线程仅执行一次
比如很多接口调用时都依赖于登录接口,但我们在压测时总不能连登录接口一起压,这时候<仅一次控制器>就起作用了
如图所示:将线程(时间练习)循环次数设为3次,运行查看结果树