注意:怎么用JMeter操作MySQL数据库?看完秒懂!

2023-11-20

近期用JMeter做接口测试,遇到了一个需要用到数据数据库的场景:一个关于数据报告的页面,需要将数据库里面的数据求和或者取均值之后,展示出来。

如果要断言的话,需要连接数据库,通过写sql语句,将sql查询结果与页面的结果进行对比。

以MySQL数据库为例,具体实现的步骤如下:

一、加载JDBC驱动

二、连接数据库

三、数据库的查询(单值/多值引用)

一、加载JDBC驱动

一)本地准备驱动jar包

注意:驱动包的版本一定要与数据库的版本匹配,驱动版本太低可能导致连接报错。

1、网盘下载

准备好MySQL的驱动,找不到的可在网盘下载:链接:https://pan.quark.cn/s/b59620ad7f30,提取码:6WWw,将文件放到JMeter安装文件夹下

图片

2、在官网下载

进入官网https://dev.mysql.com/downloads/connector/j/,选择:Platform Independent。点击Download,解压后找到jar文件,将文件放到JMeter安装文件夹下

图片

图片

二)导入驱动包

在JMeter的测试计划中,找到Add directory or jar to classspath,点击旁边的浏览,选中包,导入即可

图片

二、连接数据库

一)添加元件JDBC Connection Configuration

选中线程组,鼠标右键,添加–配置元件–JDBC Connection Configuration

图片

二)配置JDBC Connection Configuration

图片

1、名称:默认为空,可自定义名称,也可为空

2、注释:默认为空,可自定义,也可为空

3、Variable Name for created pool:一个连接名称,例如命名为s_mysql1,需要唯一标识,后面的JDBC请求中需要用到,所以需要与JDBC取样器中的名称一致,简单理解就是jdbc request的时候需要确定去请求哪个数据库。

4、Max Number of Connections:连接池中允许的最大数据库连接数,默认10,做性能测试时,建议填 0

5、Max Wait(ms) :在连接池中取回连接最大等待时间,单位毫秒,默认10000,默认即可

6、Time Between Eviction Runs(ms):线程可空闲时间,单位毫秒,默认60000,默认即可
7、Auto Commit:自动提交sql语句,有三个选项:True、False、编辑(JMeter提供的函数设置),默认为true ,默认即可

8、Transaction Isolation:事务隔离级别,默认为DEFAULT,默认即可

9、Test While Idle: 当连接空闲时是否断开,默认为True,默认即可

10、Soft Min Evictable Idle Time(ms):连接池中连接的最小空闲时间,以毫秒为单位。当连接池中的连接处于空闲状态且超过了 “Soft Min Evictable Idle Time” 的设定值时,连接池可能会选择回收这些空闲连接,默认为5000,默认即可

11、Validation Query:验证sql语法,默认为select1,默认即可

12、Database URL:数据库连接 URL,可以带上字符集characterEncoding=utf-8,也可允许多条sql执行allowMultiQueries=true,还可指定时区serverTimezone=UTC,比如jdbc:mysql://10.0.41.104:33066/u_backend?serverTimezone=UTC&characterEncoding=utf-8&allowMultiQueries=true

13、JDBC Driver class:JDBC的类,默认为空,必填项,mysql就选择com.mysql.jdbc.Driver

14、Username:数据库的用户名

15、Password:数据库的密码

三、 数据库的查询(单值/多值引用)

一)添加JDBC Request

1、选中简单控制器,鼠标右键,添加–Sample–JDBC Request

图片

添加成功后,填写对应参数:

名称:自定义

Variable Name of Pool declared in JDBC Connection Configuration:要与JDBC Connection Configuration中的Variable Name for created pool值保持一致

Query Type:根据填写的sql选择,查询就选择Select Statement,更新就选择Update Statement

Variable names:对应sql查询结果的字段值, 字段值有多少个,则对应值就有多少个,例如sql查出来有一个字段值reg_count,那么下面就对应1个变量count

Handle ResultSet:默认为Store as String,选择默认值即可, 当选择此选项时,查询结果将以字符串的形式存储在变量中

在这里插入图片描述

二)添加HTTP请求

添加HTTP请求,填写名称,HTTP请求方法,路径等等

图片

三)添加响应断言

1、引用一个变量

引用变量的形式就是变量 名 行 数 ,例如 {变量名_行数},例如变量名


 数,例如{count_1},表示引用查询结果中count字段第1行的数据,KaTeX parse error: Expected group after '_' at position 5: {变量名_̲#}表示返回的行数,例如{count_#}表示返回了几行。

图片

2、引用多个变量

如果SQL查询出来的值有多个,例如查询出来了5行记录,每行三个字段,pid_reg_count对应变量count,pid_fee对应变量fee,income对应变量income。

图片

图片

可以添加一个Debug Sample,查看每个值是怎么取的,KaTeX parse error: Expected group after '_' at position 7: {count_̲#}表示返回的行数,{count_1}表示返回的count字段的第一行的值,${count_2}表示返回的count字段的第二行的值。

fee1​表示返回的fee字段的第一行的值,{income_1}表示返回的income字段的第一行的值。。。依次类推。

图片

今天的分享就到这里,希望对大家所有启发。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

注意:怎么用JMeter操作MySQL数据库?看完秒懂! 的相关文章

  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结
  • Python 使用 NoSQL 数据库的优选方案

    NoSQL 数据库因其高性能 可扩展性和灵活性而风靡一时 然而 对于 Python 程序员而言 选择合适的 NoSQL 数据库可能会令人困惑 因为有多种选择可供选择 那么 哪种 NoSQL 数据库最适合 Python 呢 2 解决方案 根据
  • JMeter 3.2 中不存在 SOAP/XML-RPC Sampler

    我有点惊讶我的 JMeter 3 1 脚本在 3 2 中不起作用 JMeter 3 2 中删除 SOAP XML RPC Sampler 的原因是什么 是否存在一些性能问题等 这是 JMeter 的一部分change http jmeter
  • JMeter 中默认的响应超时是多少?

    如果我们没有在 HTTP 请求 采样器中设置任何超时 任何人都可以帮助了解 JMeter 中的默认响应时间吗 Thanks 它默认为0 无超时 设置超时的推荐方法是使用 GUI 如果由于某种原因它不适合您 您可以使用以下属性 用户属性 fi
  • 使用数据库表作为 JMeter 的 CSV 数据集

    我目前正在使用 JMeter 对我公司的一个应用程序进行性能测试 该应用程序需要登录 我必须使用多个用户 在 JMeter 中通常完成此操作的方式似乎是通过 CSV 数据集 但是我可以访问数据库并可以直接从那里读取所有凭据 由于这是一个测试
  • 使用 jmeter 录制时何时使用“跟随重定向”和“自动重定向”。

    我想知道之间的区别遵循重定向 and 自动重定向使用 Jmeter 进行记录时 另外 这两者一起使用时会产生什么效果从 HTML 检索所有嵌入资源 Redirect automatically 不会将重定向视为单独的请求 然而Follow
  • 使用 XPATH 子字符串函数

    我需要帮助弄清楚这个 XPATH 子字符串函数 但我无法使用它 我尝试过这种方法的各种变体 a contains text Home href substring jsessionid 12 尝试从此标签获取 jsessionid 值 a
  • jmeter http请求的每个线程的唯一ID

    我的 jmeter 测试发出一个包含唯一 ID 的 http 请求 http myserver com uniqueId 我想为每个线程设置基数 比如 35000 和增量 例如我的 id 是 35001 35002 35003 http m
  • 使用Java代码进行Jmeter分布式测试

    我能够使用 Java 代码运行 Jmeter 但如果我想做与分布式测试相同的操作 那么如何在 Java 代码中添加远程引擎 这是一个sample http alvinalexander com java jwarehouse jakarta
  • JMeter:为单个用户触发多个并发 HTTP 请求

    我有一个带有线程组和 Cookie 管理器的 JMeter 负载测试脚本 线程组中的用户首先使用HTTP采样器登录来获取cookie 然后 循环控制器触发交错采样器 该采样器在几个向服务器发出查询的 HTTP 采样器之间交替 现在 我希望交
  • JMeter 在性能测试期间挂起

    我试图模拟 4 个不同用户的 100 个线程请求 所有 97 个请求均已发送和接收 但其余 3 个请求仍显示为正在执行 我必须手动停止 Jmeter 然后只传递剩余的请求 为什么会发生这种情况 您的计算机可能没有资源来执行请求 或者 Jav
  • JMeter 记录使用 HTTPS 的 iOS 本机应用程序会导致 SSL 握手问题

    我有一个用于我们的应用程序的 IPAD 混合应用程序 它会在登录过程中尝试访问我们的 https 服务器 我想使用 JMeter 来记录这个简单的流程 我正在本地计算机上运行 JMeter 代理服务器 我更新了 IPAD 代理详细信息 以便
  • Azure 应用程序网关在进行 JMeter 负载测试时随机遇到 504 网关超时

    我有 1 个应用程序网关 它有 2 个后端 Azure VM 它通过 IIS 托管 ASP CORE REST API 两者都使用端口 80 进行通信 手动测试一切正常 直到我们使用 jmeter 进行 2500 线程 POST 请求负载测
  • 如何在 JMeter 中使用命令行参数

    我正在使用 Jmeter 测试 API 我想从终端参数化项目的路径 然后我想在 JMeter 中使用此参数 我通过命令行发送的参数 jmeter n t your script jmx Jurl abcdef com 我在用户定义变量中使用
  • JMeter 中的周期性后台任务

    我的测试计划中的请求使用授权令牌 我知道该令牌将在 1 小时内过期 我需要以某种方式每 59 分钟重新请求一次令牌 直到测试完成 有人可以建议最好的方法吗 看起来使用 While 控制器测试将永远不会完成并停留在永恒的 while 循环中
  • 尝试使用 JMeter API 生成 JMeter 测试计划 (jmx):从代码创建的 jmeter jmx 文件与 JMeter 创建的文件不匹配

    我正在尝试使用 jmeter java api 创建 jmeter jmx 文件 这就是我所做的 gui jmx 使用 jmeter gui 应用程序创建一个参考 jmx 文件 我可以将其进行比较 对于测试计划 我仅添加一个线程组和线程组内
  • 使用 JMeter 时陷入嵌套循环。嵌套循环控制器和 CSV 数据集配置。

    在我的网站上 我有两个商家操作 搜索和浏览 一次搜索通常会触发三次浏览 我有一个 JMeter 测试 它使用商家和商家 ID 号的 CSV 文件 在大规模运行此测试时 我希望使用我网站上的所有商家 我已经在 J Meter 中映射了它 如下
  • Jmeter 下降的最佳方法?

    我们都知道 Jmeter 并不是最擅长在运行期间更改活动线程的数量 除非您喜欢并创建以不同时间间隔触发的单独线程组 有没有人想出一个好的解决方案来在测试结束时降低速度 例如 我从 50 个线程开始 在 30 分钟内我想要 0 个活动线程 查

随机推荐

  • 数据结构之双向链表,实现双向链表的增删改查

    目录 一 双向链表的定义 1 双向链表节点的定义 2 双向链表的初始化 二 双向链表的函数接口实现 1 双链表的尾插 2 双向链表的尾删 3 双向链表的头插 4 双向链表的头删 6 双向链表在pos前面插入 7 双向链表删除pos位置的节点
  • 1.Twitter开发者之如何申请一个twitter开发者账号

    Twitter开发者之如何申请一个twitter开发者账号 教大家申请一个推特开发者账号满足后面的使用 保证每一步都给大家介绍到 非常详细 希望帮助大家注册好自己的账号 1 先打开Twitter的账号注册界面 选择使用手机号码或电子邮箱注册
  • C51单片机实验——脉冲计数显示(proteus+asm)

    前言 脉冲信号输入进2级74LS14整形 T1接收脉冲信号并计数 显示在LED 外部中断0控制计数器的启动 停止 外部中断1控制计数器的清零复位 P1 0控制LED的段选口使能信号 P1 1控制LED的位选口使能信号 Proteus电路图
  • ios代码大全】代码例子区全区搜索索引

    IOS 类代码 我自己做的翻书效果 小猫咪再次登场 2011 03 02 如何实现QQLive HD界面 附代码 2011 03 02 tabelviewcell 点击设置背景图片 2011 03 02 基于UDP的聊天程序 借鉴iphon
  • OpenGL ES 3.0 Programming Guide 1-3

    一 introduction to OGLES 3 0 OGLES 3 0 Graphics Pipeline VertexBuffer ArrayObj gt VertexShader texture transform feedback
  • C51的1602LCD液晶显示

    C51的1602LCD液晶显示 1 引脚功能介绍 2 基本操作时序 3 1602 液晶的指令介绍 4 实例 1 引脚功能介绍 1602 液晶就是可以显示 2 行 每行 16 个字符的液晶 一共 16 个引脚 每个引脚的功能 我们都可以在它的
  • redis操作 AOF RDB 主从复制 集群

    Redis操作 1 Redis的持久化 Redis提供了2个不同方式的持久化方式 RDB RDB是指在指定的时间间隔将内存中的数据集快照写入磁盘 也就是行话讲的Snapshot快照 它恢复时将快照文件直接读到内存中 备份是如何进行的 Red
  • 算法练习:“回”字形打印矩阵、“之字”形打印矩阵

    转圈输出n n的矩阵 进而输出 M N 的矩阵 12 34 输出为 1243 对于任意一个矩阵 可以找到他的位于正对角线两边界的元素 1234 5678 4329 对于这个矩阵 第一个边界元素是1 第二个边界元素是9 假设 1 的坐标为 r
  • Kibana 配置详解

    Kibana 配置详解 前言 一 Kibana 核心目录结构 二 Kibana 核心配置文件 参考 前言 该博文主要介绍Kibana文件目录结构说明 以及Kibana的配置说明 Kibana的安装使用可以参考我的Kibana分类专栏 本文针
  • android获取当前栈顶的activity

    在Application的onCreate方法中 Override public void onCreate registerActivityLifecycleCallbacks new ActivityLifecycleCallbacks
  • JSP页面出现Invalid location of tag (div)

    意为 不合法的标签标记 原因是我使用标签的方法不对 把table标签删除就可以了
  • C++读取shd二进制文件

    include
  • RocketMQ报No route info of this topic

    最近某天突然收到报警邮件 线上某个应用发送MQ消息报错 完整异常栈如下 2018 04 08 18 17 44 126 DubboServerHandler 10 141 6 116 20968 thread 172 ERROR com x
  • IOS代码实现Hello World

    前面写的iOS笔记一直都是用Xib文件实现的小Demo开发 但是问了好几个现在正从事ios开发的朋友 在实际开发 并不是所有的项目都会用Xib来实现的 因为IOS以前的版本不能正常运行 因为还在学习阶段 也没有在真机上测试 所以没法验证 但
  • Docker-compose部署Hadoop

    Docker部署Hadoop 1 简介 Hadoop简介 Hadoop简介 Apache Hadoop是一个开源的分布式计算平台 可以处理大规模数据集的分布式存储和处理 它是由Apache基金会下的Hadoop项目开发的 采用Java语言编
  • Hadoop 完全分布式运行实战

    Hadoop运行模式包括 本地模式 伪分布式模式以及完全分布式模式 Hadoop官方网站 Apache Hadoop 流程步骤 准备3台客户机 关闭防火墙 静态ip 主机名称 安装JDK 配置环境变量 安装Hadoop 配置环境变量 配置集
  • 入门系列之使用Sysdig监视您的Ubuntu 16.04系统

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由乌鸦 发表于云 社区专栏 介绍 Sysdig是一个全面的开源系统活动监控 捕获和分析应用程序 它具有强大的过滤语言和可自定义的输出 以及可以使用称为chisels 的Lua脚本
  • 互补二元组

    时间限制 10000ms 单点时限 1000ms 内存限制 256MB 描述 给定N个整数二元组 X1 Y1 X2 Y2 XN YN 请你计算其中有多少对二元组 Xi Yi 和 Xj Yj 满足Xi Xj Yi Yj且i lt j 输入 第
  • 【试题】排列组合

    在写一个远程的代码 如果本地有M个显示器 远程有N个显示器 M lt N 依据分辨率 显示器刷新频率等要求 需要对远程的N个显示器进行最佳分辨率修改 之后 需要从N个远程显示器中选择M个 跟本地显示器进行一对一的匹配 即从 A N M N
  • 注意:怎么用JMeter操作MySQL数据库?看完秒懂!

    近期用JMeter做接口测试 遇到了一个需要用到数据数据库的场景 一个关于数据报告的页面 需要将数据库里面的数据求和或者取均值之后 展示出来 如果要断言的话 需要连接数据库 通过写sql语句 将sql查询结果与页面的结果进行对比 以MySQ