一、逻辑控制器
操作步骤:
1. 添加线程组
2. 用户定义的变量
3. 添加if 控制器(使用 jexl3 表达式),判断name是否等于baidu ,勾选Interpret Condition as Variable Expression?
如果等于baidu,走if下面的http请求“HTTP请求-baidu”,如果等于itcast,走if下面的http请求“HTTP请求-itcast”
二、循环控制器
位置:测试计划->线程组->右键添加逻辑控制器->循环控制器
步骤:
- 添加线程组
- 添加循环控制器-设置循环次数
- 添加HTTP请求
- 添加查看结果树
三、ForEach 控制器
作用: 一般和用户自定义变量或者正则表达式提取器一起使用,读取返回结果中一系列相关的变量值
该控制器下的取样器都会被执行一次或多次,每次读取不同的变量值
位置:测试计划->线程组->右键添加逻辑控制器->ForEach控制器
1) 与用户定义的变量配合使用(案例1):
- 有一组关键字[hello,python,test],使用用户定义的变量存储
- 要依次取出关键字,并在百度搜索,例如: 百度安全验证
步骤:
- 添加线程组
- 添加用户定义的变量
3. 添加ForEach 控制器
4. 添加http请求-百度
5. 添加查看结果树
2)与正则表达式提取器配合使用(案例2):
- 访问传智播客首页 传智教育【官网】-好口碑IT职业教育,好口碑IT培训机构,一样的教育,不一样的品质传智教育(“传智播客”全新升级为“传智教育”)专注IT培训,开设多种IT培训课程,提供java培训、鸿蒙培训、前端开发培训、鸿蒙开发培训、嵌入式培训、嵌入式开发培训、大数据培训、人工智能培训、python培训、web前端培训、软件测试培训、ui设计培训、移动开发培训、新媒体运营培训、产品经理培训等IT培训服务,是好口碑的IT培训机构。https://www.itcast.cn/,获取首页中的地址信息,并全部保存下来
- 依次取出地址关键字,并在百度搜索,例如:https://www.baidu.com/s?wd=地址
操作步骤:
- 添加线程组
- 添加HTTP请求1-itcast
- 在http请求1下面,添加正则表达式提取器,提取出所有地址信息
- 添加ForEach控制器
- 添加HTTP请求2-百度
- 添加查看结果树
四、定时器
1)同步定时器
阻塞线程(累积一定的请求),当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起释放,瞬间产生很大的压力。
添加定时器-Synchronizing Timer
参数介绍:
--模拟用户的数量: 指同时释放的线程数数量
若设置为0,等于设置为线程组中的线程数量(注意:一定要确保设置的值不大于它所在线程组中设置的线程数)
--超过时间:即超过xx毫秒后同时释放指定的线程数
若设置为0,该定时器将会等待线程数达到了设置的线程数才释放,若没有达到设置的线程数会一直死等
如果大于0,那么如果超过设置的最大等待时间后还没有达到设置的线程数,timer将不再等待,释放已到达的线程,默认为0
执行顺序:先执行同步定时器,每秒集满40个后,再释放给线程组。再集满40个,再释放给线程组。
2)常数吞吐量定时器
案例:
2个用户针对(服务器的QPS要求:20QPS(20次/s)的频率访问百度首页,持续一段时间,统计运行情况
3)固定定时器
案例:
IHRM系统登录错误3次后,锁定1分钟,等待1分钟后重新输入正确的用户名密码登录成功
请求方法:POST
请求URL:http://ihrm-test.itheima.net/api/sys/login
请求头:Content-Type: application/json;charset=UTF-8
请求体:{"mobile":"13800000002","password":"123456"}
步骤:
添加线程组
添加HTTP请求1 - 错误1次
添加HTTP请求2 - 错误2次
添加HTTP请求3 - 错误3次
添加HTTP请求4 - 正确用户名密码
在HTTP请求4下,添加固定定时器
添加查看结果树
添加http信息头管理器