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

近期用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字段的第一行的值。。。依次类推。

图片

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/211474.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gRPC之gRPC负载均衡(客户端负载均衡)(etcd)

1、gRPC负载均衡(客户端负载均衡)(etcd) 本篇将基于etcd的服务发现前提下,介绍如何实现gRPC客户端负载均衡。 1.1 gRPC负载均衡 gRPC官方文档提供了关于gRPC负载均衡方案Load Balancing in gRPC https://github.com/grpc/grpc/blob/master/doc/load-balancing.m…

【数据结构/C++】栈和队列_链队列

#include <iostream> using namespace std; // 链队列 typedef int ElemType; typedef struct LinkNode {ElemType data;struct LinkNode *next; } LinkNode; typedef struct {LinkNode *front, *rear; } LinkQueue; // 初始化 void InitQueue(LinkQueue &Q) {Q.fron…

听GPT 讲Rust源代码--src/tools(2)

题图来自AI生成 File: rust/src/tools/rust-analyzer/crates/hir-def/src/src.rs rust-analyzer 是一个 Rust 语言的语法分析器和语义分析器&#xff0c;用于提供代码补全、导航、重构等开发工具。而 rust-analyzer 的代码实现存储在 rust/src/tools/rust-analyzer 这个文件夹中…

经典滑动窗口试题(一)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、将x减到0的最小操作数1、题目讲解2、讲解算法原理3、代码实现 二、无重复的最长子串1、题…

力扣:178. 分数排名(Python3)

题目&#xff1a; 表: Scores ---------------------- | Column Name | Type | ---------------------- | id | int | | score | decimal | ---------------------- 在 SQL 中&#xff0c;id 是该表的主键。 该表的每一行都包含了一场比赛的分数。Score …

gmapping仿真

文章目录 获取源码安装依赖项编译简单场景运行gmapping开启键盘控制通过launch文件来启动gmappingGmapping建图的参数设置地图的保存和加载参考 获取源码 cd ~/catkin_ws/src/ git clone https://gitcode.com/weixin_42990464/wpr_simulation.git git clone https://gitcode.c…

跨境电商包装的可持续性:EPR的视角

跨境电商的崛起已经改变了我们购物的方式&#xff0c;使我们能够轻松购买来自世界各地的产品。然而&#xff0c;这种便捷也伴随着一个不容忽视的问题&#xff1a;包装和废物管理。 跨境电商平台通常需要在全球范围内运送产品&#xff0c;这意味着大量的包装材料和废弃物。在这…

相比其他关系型数据库,AntDB JDBC驱动特性有哪些不同之处

摘要&#xff1a;使用Java语言进行各类应用程序的快速开发成为目前比较主要且流行的开发方式。JDBC是 Java 语言中用来连接和操作关系型数据库的 API&#xff0c;在业务程序与关系型数据库通信时&#xff0c;必然会使用JDBC驱动。 本文将通过国产关系型数据库AntDB中的JDBC为大…

千梦网创:创业,一场游戏一场梦

创业这件事就好比一场养成类游戏&#xff0c;而我们自己就是游戏主角。 这个游戏有一个特殊之处在于&#xff1a;SSS级装备有穿戴等级设定&#xff0c;就算你氪重金买到了一把神器&#xff0c;自身阅历不够也根本无法发挥它的强大威力而只能当个装饰。 这就要求我们真正沉浸在…

【操作系统】Bochs安装和配置

Bochs是使用C编写的高度可移植开源IA-32&#xff08;X86&#xff09;PC模拟器&#xff0c;能在大多数流行的平台上运行。它包括模拟Intel x86 CPU、常见I/O设备和自定义BIOS。Bochs可以被编译以模拟许多不同的x86 CPU&#xff0c;从386早期到最新的x86-64英特尔和AMD处理器甚至…

【数据结构】一题带你出师链表!

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 题目链接 138. 随机链表的复制https://leetcode.cn/problems/copy-list-with-random-pointer/ 题目描述 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机…

YAML 深入解析:从语法到最佳实践

什么是YAML YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种人类可读的数据序列化语言。它的设计目标是使数据在不同编程语言之间交换和共享变得简单。YAML采用了一种简洁、直观的语法&#xff0c;以易于阅读和编写的方式表示数据结构。 YAML广泛应用于配置文…