性能测试04|JMeter:毗连数据库、逻辑控制器、定时器

打印 上一主题 下一主题

主题 1051|帖子 1051|积分 3153

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目次

一、毗连数据库
1、使用场景
2、直连数据库的关键配置
3、案例
​编辑
二、逻辑控制器
1、if控制器
2、循环控制器
3、ForEach控制器
三、定时器
1、同步定时器
2、常数吞吐量定时器(用的少,相识即可)
3、固定定时器


一、毗连数据库

1、使用场景


2、直连数据库的关键配置



  • ① 添加MySQL驱动jar包

    • 方式一:在测试计划面板点击“浏览…“按钮,将你的JDBC驱动添加进来 --本脚本可用
    • 方式二:(更常用)将MySQL驱动jar包放入到lib/ext目次下,重启JMeter --所有脚本可用

  •  ② 配置数据库毗连信息

    • 添加方式:测试计划→线程组→ (右键添加) 配置元件→ JDBC Connection Configurati





  • ③ 添加JDBC哀求

    • 添加方式:测试计划→线程组→取样器→JDBC Request



3、案例

   编写JDBC脚本步调:搜索指定商品(该商品已经通过直连数据库来获取到某商品的id),在返回效果中检查是否包含指定商品的ID的详情URL
  ①添加线程组
②添加 JDBC Connection Configuration
③添加 JDBC request
④添加 HTTP哀求 - 搜索商品


⑤在搜索HTTP哀求下,添加相应断言,检查相应效果中的字符是否包含商品URL。引用格式:${变量名_索引} 
【注意】直连数据库并查询后保存的变量名goods_id是可以在其他哀求中以${变量名}的方式使用的,但是需要debug一下,确认实际取到值的变量名详细是什么,可能不是goods_id。

⑥检察效果树 
案例详细步调可观看视频:05.性能测试_直连数据库的案例2 - 搜索效果断言_哔哩哔哩_bilibili
二、逻辑控制器

逻辑控制器:可以按照设定的逻辑控制取样器的执行顺序 
1、if控制器

作用:If控制器用来控制它下面的测试元素是否运行,满足条件即执行,不满足就不执行
位置:测试计划→线程组→(右键添加)逻辑控制器 →假如(If)控制器
参数:下面两种哪个都可以,函数形式服从更高一些


  • JS形式:



  • 函数形式:使用函数助手生成函数

操作步调


  • 添加线程组
  • 用户界说的变量
  • 添加If控制器,判定name是否便是baidu



  • 在If控制器下添加HTTP哀求,用来访问百度
  • 添加If控制器,判定name是否便是itcast
  • 在If控制器下添加HTTP哀求,用来访问传智播客
  • 添加检察效果树
2、循环控制器

作用:通过设置循环次数,来实现循环发送哀求
位置:测试计划→线程组→(右键添加)逻辑控制器→ 循环控制器
参数

操作步调


  • 添加线程组
  • 添加循环控制器
  • 添加HTTP哀求
  • 添加检察效果树

【思索】线程组属性可以控制循环次数,那么循环控制器有什么用? 
控制的作用域不同:线程组控制是线程组下的所有哀求,循环控制器控制逻辑控制器下的所有哀求假如线程组循环次数为M,循环控制器循环次数为N: 


  • 循环控制器下的HTTP哀求运行:M*N次
  • 线程组下的其他HTTP哀求运行:M次

3、ForEach控制器

作用:一般和用户自界说变量或者正则表达式提取器一起使用,读取返回效果中一系列相关的变量值。该控制器下的取样器都会被执行一次或多次,每次读取不同的变量值。
位置:测试计划 →线程组→(右键添加)逻辑控制器→ ForEach控制器
配置项


   
     变量前缀泉源;   
变量名和编号之间可以是_也可以没有符号,但是不能是空格     操作步调
①与用户界说的变量配合使用 


  • 添加线程组
  • 添加用户界说的变量


    • 返回一组变量:雷同的变量名+一连的数字后缀

  • 添加ForEach控制器



  • 添加HTTP哀求-百度


    • 引用ForEach控制器中保存的新变量名,如${kw}

  • 添加检察效果树
②与正则表达式提取器配合使用


  • 添加线程组
  • 添加HTTP哀求-itcast (目的是从该网站首页获取地址信息,并保存下来)
  • 添加正则表达式提取器



  • 添加ForEach控制器

    •            
                   结束循环字段可以不填,表现可以读到末了一个不一连的数为止

  • 添加HTTP哀求-百度



  • 添加检察效果树
三、定时器

1、同步定时器

作用:阻塞线程(累积一定的哀求),当在规定的时间内达到一定的线程数目,这些线程会
在同一个时间点一起开释,瞬间产生很大的压力。
(提示:在JMeter中叫做同步定时器,在Loadrunner中又叫集合点)
使用场景:测试抢购、秒杀或者抢红包等高并发的场景
位置:测试计划→线程组→HTTP哀求→(右键添加)定时器 →Synchronizing Timer
配置项时间和数目满足一项即会开释线程


操作步调


  • 添加线程组,设置线程数为n
  • 添加HTTP哀求
  • 添加同步定时器

    • 设置并发线程数:同时发送哀求的捏造用户数
    • 设置超时时间:

      • Ø建议设置:不设置的话,若没有达到设置的线程数会不停死等
      • Ø不能设置太小:等待时间后还没达到设置的线程数,会开释已到达的线程


  • 添加检察效果树
  • 添加监听器-聚合报告
  •       
             红框位置可以看到发送http哀求的变化
2、常数吞吐量定时器(用的少,相识即可)

使用场景:稳定性测试时,需要指定按照特定的吞吐量发送哀求时,要求模仿用户真实的业务场景。
作用:让JMeter按指定的吞吐量执行,以每分钟为单元。
位置:测试计划→线程组 →HTTP哀求 →(右键添加)定时器 →Constant Throughput Timer
参数


      
       qps:每秒查询数       操作步调


  • 添加线程组,循环次数设置成永远
  • 添加HTTP哀求
  • 添加常数吞吐定时器

    • 目的吞吐量是指每个用户每分钟发送的哀求数
    • 盘算方法:要求的QPS*60/线程数
    •            
                   假如线程数为1的话,那每秒就发送10个哀求;      
      假如线程数为2的话,假如仍然想每秒发送10个哀求,则需要把目的吞吐量设为300;​​​

  • 添加检察聚合报告

    •            
                   红框位置可以看到每秒发送的哀求

3、固定定时器

使用场景:Jmeter的线程组在发送2个哀求之间需要设置一个等待时间时,可以用固定定时器办理。
案例
(1)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下,添加固定定时器添加
  • 检察效果树











全部内容:
性能测试01|性能测试理论-CSDN博客
性能测试02|JMeter:安装、元件、线程组、HTTP哀求、检察效果树、参数化-CSDN博客
性能测试03|JMeter:断言、关联、web脚本录制-CSDN博客 
性能测试04|JMeter:毗连数据库、逻辑控制器、定时器-CSDN博客
性能测试05|JMeter:分布式、报告、并发数盘算、性能监控-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表