Jmeter控制器与定时器

一、逻辑控制器

操作步骤:

1. 添加线程组

2. 用户定义的变量

3. 添加if 控制器(使用 jexl3 表达式),判断name是否等于baidu ,勾选Interpret Condition as Variable Expression?

如果等于baidu,走if下面的http请求“HTTP请求-baidu”,如果等于itcast,走if下面的http请求“HTTP请求-itcast”

二、循环控制器

位置:测试计划->线程组->右键添加逻辑控制器->循环控制器

步骤:

  1. 添加线程组
  2. 添加循环控制器-设置循环次数
  3. 添加HTTP请求
  4. 添加查看结果树

三、ForEach 控制器

作用: 一般和用户自定义变量或者正则表达式提取器一起使用,读取返回结果中一系列相关的变量值

该控制器下的取样器都会被执行一次或多次,每次读取不同的变量值

位置:测试计划->线程组->右键添加逻辑控制器->ForEach控制器

1) 与用户定义的变量配合使用(案例1):

  1. 有一组关键字[hello,python,test],使用用户定义的变量存储
  2. 要依次取出关键字,并在百度搜索,例如: 百度安全验证

步骤:

  1. 添加线程组
  2. 添加用户定义的变量

3. 添加ForEach 控制器

4. 添加http请求-百度

5. 添加查看结果树

2)与正则表达式提取器配合使用(案例2):

  1. 访问传智播客首页 传智教育【官网】-好口碑IT职业教育,好口碑IT培训机构,一样的教育,不一样的品质传智教育(“传智播客”全新升级为“传智教育”)专注IT培训,开设多种IT培训课程,提供java培训、鸿蒙培训、前端开发培训、鸿蒙开发培训、嵌入式培训、嵌入式开发培训、大数据培训、人工智能培训、python培训、web前端培训、软件测试培训、ui设计培训、移动开发培训、新媒体运营培训、产品经理培训等IT培训服务,是好口碑的IT培训机构。icon-default.png?t=N7T8https://www.itcast.cn/,获取首页中的地址信息,并全部保存下来
  2. 依次取出地址关键字,并在百度搜索,例如:https://www.baidu.com/s?wd=地址

操作步骤:

  1. 添加线程组
  2. 添加HTTP请求1-itcast
  3. 在http请求1下面,添加正则表达式提取器,提取出所有地址信息
  4. 添加ForEach控制器
  5. 添加HTTP请求2-百度
  6. 添加查看结果树

四、定时器

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信息头管理器

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter中的If控制器可以用于根据某些条件来控制测试计划中的执行流程。如果条件为真,则执行If控制器中的所有子元素,否则跳过它们。 以下是If控制器的使用步骤: 1. 添加If控制器:在测试计划中右键单击线程组,选择添加 -> 逻辑控制器 -> If控制器。 2. 添加条件:在If控制器中添加一个条件,可以使用函数、变量或表达式来定义条件。 3. 添加子元素:如果条件为真,则执行If控制器中的所有子元素。因此,在If控制器中添加需要执行的子元素,如HTTP请求、数据库请求等。 4. 配置条件:在条件中输入函数、变量或表达式,以便JMeter可以根据条件来控制执行流程。 5. 运行测试计划:运行测试计划并观察执行流程是否符合预期。 示例: 假设我们需要在测试计划中添加一个If控制器,以便在响应时间大于5秒时暂停5秒钟。可以按照以下步骤操作: 1. 添加If控制器:右键单击线程组,选择添加 -> 逻辑控制器 -> If控制器。 2. 添加条件:在条件中输入${__jexl3(${JMeterThread.last_sample_ok} && ${JMeterThread.last_sample_time}>5000)}。此条件使用JEXL函数和变量来检查最后一个样本的响应时间是否大于5秒。 3. 添加子元素:在If控制器中添加一个定时器,设置时间为5000毫秒。 4. 配置条件:在条件中输入函数、变量或表达式。 5. 运行测试计划:运行测试计划并观察执行流程是否符合预期。如果响应时间大于5秒,则会暂停5秒钟。否则,不会执行暂停操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值