目录

jmeter-JDBC配置连接mysql数据库

jmeter-JDBC配置连接mysql数据库

jmeter-JDBC配置连接mysql数据库

一、引言:

jdbc接口的写法:

是一种用于执行sql语句的JAVA API

通过这个api可以直接执行sql脚本

使用jmeter压测接口的时候,有时候需要批量造数据,需使用jmeter连数据库造对应的测试数据。

或者测试结束后,对测试的数据还原,删掉一些垃圾数据,都会用到连接数据库执行sql的操作。

二、数据库驱动包下载与安装

jmeter 连mysql 数据库需安装对应的驱动包,

1.下载

下载地址:

https://i-blog.csdnimg.cn/blog_migrate/582f1e3d4c48b3f2863ccbbce5015208.png

2.安装

下载完成后解压放到jmeter的lib/ext下

https://i-blog.csdnimg.cn/blog_migrate/d3773102718c69fe5a6bed15a7d25229.png

重启jmeter

没有要求jar包和数据库版本一致,即不用考虑

三、JDBC的连接配置

添加配置元件-JDBC Connection Configuration

https://i-blog.csdnimg.cn/blog_migrate/4398121a4019a700770fb1bf7f61ed18.png

先弄清楚自己的mysql数据库相关信息:

https://i-blog.csdnimg.cn/blog_migrate/c0cfdb5e85b7a48177844931eda2e17e.png

https://i-blog.csdnimg.cn/blog_migrate/ab780d83dfa372c6ef62abc2f60f3044.png

配置连接数据库mysql相关的配置内容

  • Variable Name for created pool:

    自己定义连接数据库的名称,自己知道是连的哪个数据库就行,如:jdbc_web

  • Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称,

    如:jdbc:mysql://localhost:3306/kyj

    url后面的参数(可以不写)characterEncoding=utf8&useSSL=true&serverTimezone=UTC

    设置时区和编码格式

  • JDBC Driver class:JDBC驱动,我用的mysql选com.mysql.jdbc.Driver

  • username:登陆数据库的用户名

  • passwrod:登陆数据库的密码

    https://i-blog.csdnimg.cn/blog_migrate/4a092eddc04e0f164d9f2a3da17c2ef4.png

    JDBC Driver

    不同的数据库和驱动连接方式参考下表

    https://i-blog.csdnimg.cn/blog_migrate/340d0396fb54e2d5a62691913b02f2f6.png

四、JDBC request请求

线程组-添加-取样器-JDBC Request

https://i-blog.csdnimg.cn/blog_migrate/f555d95b155fdcee2eb7ed1bcac238cd.png

JDBC Request 请求里面写个简单的查询SQL验证下是否能查到数据

  • Variable Name for created pool 前面自己定义的连接数据库的名称

  • Query Type: 查询的sql选择 Select Statement选项

  • Query: 写个查询的SQL select * from cb_account limit 10

    jmeter中写sql语句,末尾不建议用;

    jdbc request请求中,不支持写多条语句 https://i-blog.csdnimg.cn/blog_migrate/44a655f2d01f915c61cebc1bea818590.png

    2.query type

    select statement 查询脚本,不带变量参数

    updata statement 增删改脚本,不带变量参数

    Prepared select statement 查询脚本,带变量参数

    Prepared statement 增删改脚本,带变量参数

    带变量参数场景,如下图所示,按照下图进行操作

    https://i-blog.csdnimg.cn/blog_migrate/74820add6cc1925823e55d44c3032568.png

    https://i-blog.csdnimg.cn/blog_migrate/dc1eb05529e45b5fdb145a64c7b94736.png

    https://i-blog.csdnimg.cn/blog_migrate/09847c6987ae079e26e4b94f31db92a9.png

查看结果数,可以查询到数据库表里面的数据

https://i-blog.csdnimg.cn/blog_migrate/2883abe056e739f9f7c502008e4ebd1e.png

注意事项

https://i-blog.csdnimg.cn/blog_migrate/fd18f0f0161f953f524457117a1a28fe.png

JDBC Driver class 选项:

com.mysql.jdbc.Driver 数据库版本8以下使用

当你的mysql数据库的版本是8版本以上Driver class 只能使用

com.mysql.cj.jdbc.Driver

https://i-blog.csdnimg.cn/blog_migrate/9fea29afaba73367096fc12ef4634a2c.png

五、JDBC实战

通过sql语句查询数据,通过查询到的数据实现登录的功能

通过sql语句在数据库查询10条数据,查询内容包括:id,mobile,gqid,password,sql语句如下:

select id,mobile,gqid,password from cb_account where password='e10adc3949ba59abbe56e057f20f883e' limit 10 offset 130000

https://i-blog.csdnimg.cn/blog_migrate/30b24956d846f6013c66fee022a17981.png

通过查看调试取样器:

https://i-blog.csdnimg.cn/blog_migrate/4c5d805085339bf71f3439cc8e0c1131.png

https://i-blog.csdnimg.cn/blog_migrate/525ada4d92ca6339813ea9827d228416.png

上边的这些数据都可以根据下边的需要,去拿取去使用的

查询结果:

https://i-blog.csdnimg.cn/blog_migrate/3925ff07961712d4d156d53568bcd4e4.png

下边这些数据,是通过JDBC request—–》variable name下 命名后提取出来的,用于下边登录中使用这些数据,提取的是10条

https://i-blog.csdnimg.cn/blog_migrate/3ed4aea62071f02db68e16c4e426344e.png

登录请求需要传参数:mobile 和gqid 和password

因为从数据库提取了10条数据,可以 实现10次登录,

实现结果如下:

1.首先使用循环控制器,目的实现10次登录,但是10次登录的数据不一样,需要动态的传数据,需要用到 拼接函数 _V 和计数函数 *counter

循环次数,也需要引入变量,这个变量,需要来自数据库的vmobile_#或者vid_#或者vgqid* #这些记录了这些数据的总数, 可以作为循环次数

https://i-blog.csdnimg.cn/blog_migrate/69dce23561603b68e159c9bccbf0f675.png

2.循环控制器设置

https://i-blog.csdnimg.cn/blog_migrate/9a3cb5ea541ee357c064ebbcfc8c4896.png

登录请求放到循环控制器下:

https://i-blog.csdnimg.cn/blog_migrate/508fc20954c2d5c876b7325d19985614.png

动态参数用到拼接函数 __V 和计数函数__counter,处理如上图所示

3.查看结果树

通过sql语句查询数据,通过查询到的数据实现登录的功能

https://i-blog.csdnimg.cn/blog_migrate/ff406e336af558c3b444e000acecf960.png