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

Jmeter连接数据库、逻辑控制器、定时器

  • Jmeter直连数据库
    直接数据库的使用场景
    在这里插入图片描述

直连数据库的关键配置

  • 添加MYSQL驱动Jar包

方式一:在测试计划面板点击“浏览”按钮,将你的JDBC驱动添加进来
在这里插入图片描述

方式二:将MySQL驱动jar包放入到lib/ext目录下,重启JMeter
在这里插入图片描述

配置数据库连接信息

  • 添加方式-测试计划->线程组->(右键添加)配置元件JDBC Connection Configuration

在这里插入图片描述

  • Variable Name:mysql数据库连接池名称(JDBC请求时要引用)

  • Database URL:jdbc:mysql://localhost:3306/tpshop2.0

​ - 组成:协议+数据库IP+数据库端口+连接的数据库名称

​ - JDBC DRIVER class:com.mysql.jdbc.Driver(MySQL驱动包 位置固定格式---- 下拉框)

​ - Username:root(连接数据库用户名,如实填写)

​ - Password:(MySQL数据库密码,如实填写,如果密码为空不写)

== 添加JDBC请求==

  • 添加方式:测试计划—线程组—取样器—JDBC Request
    在这里插入图片描述
    Variable Name :数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound pool名字保持一致

练习1:

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

准备工作:

1.启动tpshop数据库服务器

2.添加MySQL驱动jar包
操作步骤:

  • 添加线程组
  • 添加 JDBC Connection Configuration
    在这里插入图片描述
  • 添加 JDBC Request
    在这里插入图片描述
  • 添加查看结果树

练习2:

1、在tpshop首页中搜索商品名称包含"小米手机5",

请求url:http://192.168.234.129/Home/Goods/search.html

请求方法:GET

请求参数:q=“小米手机5”

2、 在搜索的响应数据中检查是否有该商品对应的商品链接:/Home/Goods/goodsInfo/id/237.html

(id:237需要通过数据库查询返回,才保证每次都是有效的)
编写JDBC脚本步骤(搜索指定商品,在返回结果中检查是否包含指定商品的ID的详情 URL):

  • 1.添加线程组
  • 2.添加 JDBC Connection Configuration
    在这里插入图片描述
  • 3.添加 JDBC request
    在这里插入图片描述
  • 4.添加 HTTP请求 - 搜索商品
    在这里插入图片描述
  • 5、断言响应数据是否包含指定商品的ID详情url(预期结果的商品id从数据库获取)
    在这里插入图片描述
    在这里插入图片描述
  • 查看结果树
  • Jmeter逻辑控制器

  • 如果(If)控制器

作用:If控制器用来控制它下面的测试元素是否执行

位置:测试计划–>线程组—>(右键添加)逻辑控制器—>如果(If)控制器
参数介绍:
在这里插入图片描述

练习:

1.使用“用户定义的变量”定义一个变量name,name的值可以是“baidu"或”itcast"

2.根据name的变量值实现对应网站的访问。

操作步骤:

1.添加线程组

2.用户定义的变量
在这里插入图片描述

3.添加If控制器,判断name是否等于baidu
在这里插入图片描述

4.添加HTTP请求,用来访问百度
在这里插入图片描述

5.添加If控制器,判断name是否等于itcast
在这里插入图片描述
在这里插入图片描述

6.添加HTTP请求,用来访问传智播客
在这里插入图片描述

7.添加查看结果树
在这里插入图片描述

小结

(1) IF控制器的作用是什么?

  • 控制它下面的测试元素是否执行

(2)使用“iF控制器” 的操作步骤?

  • 1.添加线程组
  • 2.用户定义变量
  • 3.添加if控制器,判断name是否等于“baidu”
    • 不勾选Interpret Condition,“${name}”==“baidu”
    • 勾选,${__jexl3("${name}"=="itcast",)}
  • 4.添加HTTP请求,访问百度
  • 5.添加if控制器,判断name是否等于“itcast”
  • 6.添加HTTP请求,访问itcast
  • 7.查看结果树
  • 循环控制器

作用:通过设置循环次数,来实现循环发送请求

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

参数介绍:
在这里插入图片描述

案例:1.循环访问百度10次

操作步骤:

1.添加线程组

2.添加循环控制器----设置循环次数
在这里插入图片描述

3.添加HTTP请求
在这里插入图片描述

4.添加查看结果树
在这里插入图片描述

小结

思考:线程组属性可以控制循环次数,那么循环器有什么用?

控制的作用域不同:线程组控制是线程组下的所有请求,循环控制器控制逻辑控制器下的所有请求

如果线程组循环次数为M,循环控制器循环次数为N:

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

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

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

位置:测试计划—>线程组—>(右键添加)逻辑控制器—>ForEach控制器
在这里插入图片描述

练习:

1.有一组关键字[hello,python,测试],使用用户定义的变量存储

2.要依次取出关键字,并在百度搜索,例如:https://www.baidu.com/s?wd=hel

步骤:

  • 1.添加线程组

  • 2.添加用户自定义的变量
    在这里插入图片描述

  • 3.添加ForEach控制器
    在这里插入图片描述

  • 4.添加HTTP请求
    在这里插入图片描述

  • 查看结果树
    在这里插入图片描述

小结

(1)forEach控制器的作用是什么?

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

(2)使用“ForEach控制器”的操作步骤?

  • 1.添加线程组
  • 2.添加用户定义变量/正则表达式提取器
    • 返回一组变量:相同的变量名+连续的数字后缀,如name_1,……,name_3
  • 3.添加forEach控制器
    • 输入变量前缀:要读取的输入变量的固定前缀,如:name
    • 开始循环字段:要读取的输入变量后缀数字的最小值-1,如0
    • 结束循环字段:要读取的输入变量后缀数字的最大值,如3
    • 输出变量名称:要读取的输入变量后保存的新变量名,如word
  • 4.添加HTTP请求-百度
    • 引用forEach控制器中保存的新变量名, 如${word}
  • 5.查看结果树

正则表达式配合使用(案例2):

  1. 访问黑马首页http://www.heima.cn,获取首页中的地址信息,并全部保存下来
  2. 要依次取出地址关键字,并在百度搜索,例如:https://www.baidu.com/s?wd=地址

操作步骤:

  • 1.添加线程组

  • 2.添加HTTP请求1-heima
    在这里插入图片描述

  • 3.在HTTP请求1下面,添加正则表达式提取器,提取出所有的地址信息
    在这里插入图片描述
  • 4.添加ForEach控制器
    在这里插入图片描述
  • 5.添加HTTP请求2-百度
    在这里插入图片描述
  • 6.添加查看结果树
http://www.lryc.cn/news/541012.html

相关文章:

  • 『Linux笔记』进程间通信(IPC)详细介绍!
  • Jmeter进阶篇(34)如何解决jmeter.save.saveservice.timestamp_format=ms报错?
  • Visual Studio 2022配置网址参考
  • Redis中集合(Set)常见命令详解
  • 动态规划
  • stm32rtc实时时钟详解文章
  • DeepSeek 助力 Vue 开发:打造丝滑的 键盘快捷键(Keyboard Shortcuts)
  • 【第一节】C++设计模式(创建型模式)-工厂模式
  • 深入理解 SQL 注入漏洞及解决方案
  • 使用 deepseek实现 go语言,读取文本文件的功能,要求支持 ascii,utf-8 等多种格式自适应
  • 7.【线性代数】——求解Ax=0,主列和自由列
  • vue3结合后端传递过来的文件进行预览功能
  • 【Python爬虫(39)】掌控全局:分布式爬虫的任务管理与监控之道
  • Jenkins整合Jmeter实现接口自动化测试
  • Web 自动化测试提速利器:Aqua 的 Web Inspector (检查器)使用详解
  • 大语言模型:从开发到运行的深度解构
  • 【GoLang】【算法模板】2、GoLang 算法模板整理
  • 合理建模--最短路径
  • 喜报!博睿数据案例获经观传媒“2024年度数字转型创新案例”!
  • 基于图扑 HT 可视化技术打造智慧地下采矿可视化方案
  • 深度学习(2)-深度学习关键网络架构
  • 【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(8-15)
  • 【Linux网络编程】IP协议格式,解包步骤
  • 给老系统做个安全检查——Burp SqlMap扫描注入漏洞
  • Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory
  • 开源免费文档翻译工具 可支持pdf、word、excel、ppt
  • 从CNN到Transformer:遥感影像目标检测的未来趋势
  • 【GORM学习笔记】GORM介绍以及增删改查相关操作
  • WebSocket在分布式环境中的局限性及解决方案
  • SIM盾构建安全底座的可行性分析