当前位置: 首页 > news >正文

性能测试 | 性能测试工具JMeter直连数据库和逻辑控制器的使用

JMeter直连数据库和逻辑控制器

  • JMeter直连数据库
    • 案例1 连接tpshop商城数据库获取商品名包含:小米手机5的商品id
    • 案例2 连接tpshop商城数据库获取商品名包含小米手机5的商品id,并作为请求参数请求并和检查响应后的数据是否存在对应商品id链接
  • JMeter逻辑控制器
    • 1. if控制器
      • 案例一 定义变量name并根据name的变量值实现对应网站的访问
    • 2. 循环控制器
      • 案例1 循环访问百度十次
    • 3. ForEach控制器
      • 案例1 循环读取用户定义变量并作为参数访问百度
      • 案例2 结合正则表达式提取器提取地址关键字作为参数访问百度
    • 4. 同步定时器
      • 案例1 模拟100个用户同时访问百度首页,统计各种高并发情况下运行情况
    • 5. 常数吞吐量定时器
      • 案例1 一个用户以20QPS(20次/s)的频率访问百度首页,持续一段时间,统计运行情况
    • 6. 固定定时器
      • 案例1 HR系领登录错误3次后,锁定1分钟,1分钟后重新输入正确的用户名密码登录成功

JMeter直连数据库

  • 使用场景
    在这里插入图片描述
  • 操作步骤
    1. 添加MySQL驱动jar包
      • 方式一:在测试计划面板点击“浏览。"按钮,将你的JDBc驱动添加进来【一次性的】
      • 方式二:将MySQL驱动jar包放入到lib/ext目录下,重启JMeter 【永久的】
    2. 配置数据库连接信息
      • 添加方式:测试计划–>线程组–>(右键添加)配置元件->JDBC Connection Configuration
        在这里插入图片描述
Variable Name:mysql数据库连接池名称(JDBC请求时要引用)Database URL: jdbc:mysql://localhost:3306/tpshop2.0【组成:协议+数据库IP+数据库端口+连接的数据库名称】JDBC IDRIVER Class:com.mysql.jdbc.Driver(MySQL驱动包位置固定格式  一  下拉框选择)Username:root(连接数据库用户名,如实填写)
PassWord: 数据库密码
  1. 添加JDBC请求
    • 添加方式:测试计划–>线程组–>取样器–>JDBC Request
      在这里插入图片描述

案例1 连接tpshop商城数据库获取商品名包含:小米手机5的商品id

准备工作:

  1. 启动tpshop数据库服务器
  2. 添加MySQL驱动jar包

操作步骤:

  1. 添加线程组
  2. 添加JDBC Connection Configuration
  3. 添加JDBC request
  4. 添加查看结果树
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

案例2 连接tpshop商城数据库获取商品名包含小米手机5的商品id,并作为请求参数请求并和检查响应后的数据是否存在对应商品id链接

在这里插入图片描述

  • 操作步骤
  1. 添加线程组
  2. 添加JDBC Connection Configuration
  3. 添加JDBC request
  4. 添加HTTP请求-搜索商品
  5. 在搜索HTTP请求下,添加响应断言,检查响应结果中的字符是否包含商品URL(URL中含ID)
  6. 添加查看结果树
    实现的树结构
  • 操作过程
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

这里大家可以尝试修改查询参数为${goods_#}是什么效果!!!

JMeter逻辑控制器

1. if控制器

作用:If控制器用来控制它下面的测试元素是否运行
位置:测试计划–>线程组–>(右键添加)逻辑控制器–>如果(1f)控制器
在这里插入图片描述

案例一 定义变量name并根据name的变量值实现对应网站的访问

操作步骤:

  1. 添加线程组
  2. 用户定义的变量
  3. 添加If控制器,判断name是否等于baidu
  4. 添加HTTP请求,用来访问百度
  5. 添加If控制器,判断name是否等于itcast
  6. 添加HTTP请求,用来访问传智播客
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 替换成函数调用方法
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

2. 循环控制器

作用:通过设置循环次数,来实现循环发送请求
位置:测试计划–>线程组–>(右键添加)逻辑控制器–>循环控制器
在这里插入图片描述

案例1 循环访问百度十次

操作步骤:

  1. 添加线程组
  2. 添加循环控制器
  3. 添加HTTP请求
  4. 添加查看结果树
    在这里插入图片描述
    在这里插入图片描述
  • 线程组属性可以控制循环次数,那么循环控制器有什用?
    线程组属性控制组内的所有请求次数 循环控制器控制自己分支下的请求 次数 【作用范围不同】
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. ForEach控制器

作用:一般和用户自定义变量或者正则表达式提取器一起使用,读取返回结果中一系列相关的变量。
【该控制器下的取样器都会被执行一次或多次,每次读取不同的变量值。】
位置:测试计划–>线程组–>(右键添加)逻辑控制器–>ForEach控制器
在这里插入图片描述

案例1 循环读取用户定义变量并作为参数访问百度

1、有一组关键字[hel1o,python,测试],使用用户定义的变量存储
2、要依次取出关键字,并在百度搜索,例如:https://www.baidu.com/s?wd=hello

操作步骤:

  1. 添加线程组
  2. 添加用户定义的变量 【测试计划 -> 配置原件 -> 用户定义的变量】
  3. 添加ForEach控制器
  4. 添加HTTP请求-百度
  5. 添加查看结果树
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

案例2 结合正则表达式提取器提取地址关键字作为参数访问百度

1、访问传智播客首页http://www.itcast.cn,获取首页中的地址信息,并全部保存下来
2、要依次取出地址关键字,并在百度搜索,例如:https://www.baidu.com/swd=地址

  • 操作步骤
  1. 添加线程组
  2. 添加HTTP请求1-itcast
  3. 在HTTP请求1下面,添加正则表达式提取器,提取出所有的地处信息【在步骤3的HTTP请求 --> 右键后置处理器 --> 正则表达式提取器 (HTTP下的分支)】
  4. 添加ForEach控制器
  5. 添加HTTP请求2-百度
  6. 【可选】Debug Sampler [线程组 -> 取样器 -> Debug Sampler ]
  7. 添加查看结果树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 同步定时器

线程组中是通过设置线程数来执行同步操作的,但是那也不是真正意义上的同步!!!

  • 场景

在这里插入图片描述

同步定时器:阻塞线程(累积一定的请求),当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起释放,瞬间产生很大的压力。
位置:测试计划–>线程组–>HTTP请求–>(右键添加)定时器–>Synchronizing Timer
在这里插入图片描述

案例1 模拟100个用户同时访问百度首页,统计各种高并发情况下运行情况

  • 先观察无同步定时器用户运行机制
    在这里插入图片描述

操作步骤:

  1. 添加线程组,设置线程数=100
  2. 添加HTTP请求
  3. 添加同步定时器,并发数可分别设置20/30人 【HTTP请求 --> 定时器 -->Synchronizing Timer】
  4. 添加查看结果树 【测试计划 --> 监听器 --> 查看结果树】
  5. 添加监听器-聚合报告【测试计划 --> 监听器 --> 聚合报告】
    在这里插入图片描述
    在这里插入图片描述

5. 常数吞吐量定时器

  • 什么时候需要使用常数吞吐量定时器?
    需要按指定的吞吐量发送请求时,可以使用常数吞吐量定时器
    • 设置目标吞吐量:每个用户每分钟发送的请求数
    • 计算方法:要求QPS*60/线程数
      在这里插入图片描述
      作用:让JMeter按指定的吞吐量执行,以每分钟为单位
      位置:测试计划->线程组-HTTP请求->(右键添加)定时器-位置:测试计划->线程组-HTTP请求->(右键添加)定时器–>Constant Throughput Timer
      在这里插入图片描述
      QPS(Query Per Second)每秒查询数:即控制服务器每秒处理的指定请求的数量

案例1 一个用户以20QPS(20次/s)的频率访问百度首页,持续一段时间,统计运行情况

操作步骤:

  1. 添加线程组,循环次数设置成永远
  2. 添加HTTP请求
  3. 添加常数吞吐定时器
  4. 添加查看结果树
  5. 添加监听器-聚合报告
  • 1个用户的设置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 2个用户
    在这里插入图片描述
    在这里插入图片描述
    若是不设置它就是按照你机器所能够承受的最大的速率来进行发送

6. 固定定时器

  • 设置位置
    在这里插入图片描述

案例1 HR系领登录错误3次后,锁定1分钟,1分钟后重新输入正确的用户名密码登录成功

  • 操作步骤
  1. 设置请求头 【测试计划 --> 配置原件 --> HTTP信息头管理器】
  2. 添加线程组
  3. 添加HTTP请求1 - 错误1次
  4. 添加HTTP请求2 - 错误2次
  5. 添加HTTP请求3 - 错误3次
  6. 添加HTTP请求4 - 正确用户民密码
  7. 添加 固定定时器 【HTTP请求4下】
  8. 添加查看结果树
  • 设置正确的请求头
    json 请求对应的是 application/json
    设置json请求对应的类型
    在这里插入图片描述
    在这里插入图片描述
http://www.dtcms.com/a/541698.html

相关文章:

  • 建站 报价专业网站开发制作公司
  • 手机版网站如何做直接进网站的浏览器
  • 网站建设总结与心得体会颍州网站建设
  • 引力概念中的混乱点:传统物理学与张祥前统一场论对比
  • 通管局报审通关秘籍:网约车平台网络安全防护与保障能力报告
  • 郑州市建设网站wordpress 加斜杠
  • 正规网站建设公司一般要多少钱建设银行面试经验网站
  • [ssh]系统重装后,如何重新设置window免密登录远程linux服务器
  • 网站模板预览与编辑器旅游网站简介
  • 网站建设ppt百度文库注册公司地址可以用家庭地址
  • 学习一下kernel6.12中sugov_iowait_apply的函数逻辑
  • 北京网站开发报价做搜狗网站优化首页软
  • node.js网站开发十大购物网站排行榜
  • ProcDump 学习笔记(6.14):在调试器中查看转储(WinDbg / Visual Studio 快速上手)
  • 正规网站建设报价网站建设案例精粹 电子书
  • PE之不同区域的结构体定义
  • Ubuntu24.04 赋予 Qt 应用程序 修改系统时间 权限
  • 50+孙悦梓潼舞台状态惊艳全网!自律的女神,连下颌线都是顶配
  • Rust:复合类型内存布局
  • net网站是国际域名吗wordpress发布文章页面错误
  • 英语学习 第一周 重难点
  • 做国际网站的流程unity做网站
  • 模板性公司网站图片网站制作的发展趋势
  • 石英加速度计如何敏锐感知飞机爬升与转弯的细微变化?
  • 【VS2019配置Boost】vs2019无法识别boost库目录
  • 要进一步增强门户网站建设合力有几个网站能在百度做推广
  • 常德网站建设常德做用户运营应该关注哪些网站
  • 目前做的最好的招聘网站外贸网站建设谷歌推广
  • 有空间与域名 怎么做网站为什么自己做的网站别的电脑打不开
  • 【AI大模型应用宝典60题】31-35