Jmeter-jdbc-mysql

1、下载驱动

没驱动会报错:Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

在选择驱动前,需要下载mysql-connector-java-5.1.7-bin.jar插件包,把插件包放置Jmeter\lib\ext文件夹下,重启jmeter

(MySQL数据库的JDBC驱动包下载地址:https://downloads.mysql.com/archives/c-j/

其中ip是指数据库所在的服务器的IP,端口号为连接数据库的;?用于连接参数,参数可有可无,常见参数可到MySQL官网查看,如https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html

mysql版本8 与 mysql版本5.7 jar有差异吗?

  • 现在企业中,用的mysql数据库,一般都是 mysql5 和mysql8 5的版本,一般都是5.7.x
  • mysql5的版本,jar包,可以选择大于等于你数据库版本的任意jar包。  mysql: com.mysql.jdbc.Driver
  • mysql8版本,那么你选择的jar包,要大于等于你版本号,一般情况,选择版本号相同的  mysql8是手写:com.mysql.cj.jdbc.Driver
  • mysql8与mysql5的驱动class不一样

2、JDBC Connection Configuration连接数据库

多个线程组共用一个数据库时,可以放setUp线程组中

 

 

JDBC Connection Configuration连接数据库,JDBC Request从变量里获取连接数据库的权限,然后对数据库进行操作。

Variable Name for created pool 必填-通过这个变量进行关联JDBC Request, 自定义一个线程池变量名

Database URL(数据库连接地址) 必填 

JDBC Driver class 必填-不同数据库需要的驱动不一样,因项目用的是MySQL数据库,所以JDBC Driver class选择驱动为:com.mysql.jdbc.Driver mysql8是手写:com.mysql.cj.jdbc.Driver

Username 必填

Password 必填

3、JDBC Request

 一定要与JDBC Connection Configuration中配置的连接池名称(Variable Name for created pool )要一致

提供的查询类型有8种,这里介绍常用的3个:

  1. Select statement -- 查询语句类型;如果JDBC Request中的Query内容为一条查询语句,则选择这种类型。PS:如果该类型下写入多条语句,只执行第一条select语句。
  2. Update statement -- 更新语句类型(包含insert和update);如果JDBC Request中的Query内容为一条更新语句,则选择这种类型。PS:如果该类型下写入多条update语句,依然只执行第一条删除操作本质上是更新操作,insert操作本质是update操作
  3. Callable statement:可调用语句类型,可以执行多条SQL语句。添加jdbc取样器,Query TypeCallable statement,添加多个语句 -- 注意,多条语句时,要用分号分隔语句!!!并且配置JDBC Connection configuration元件,只须在Database URL末尾加上?allowMultiQueries=true

 jmeter中,写sql可以不写封号, 不要想着在一个sql query中写多个sql,要写多个sql就用多个jdbc request。 默认也是不支持一个sql query中写多个sql

prepared select statement 、 prepared update statement带有 prepared开头,是脚本中,可以带有参数

 sql中带参数的写法: 两种

  •  直接在sql中,进行变量引用 ${var} 但是不推荐
  • 用 ? 变量占位符 ====推荐

4、sql查询多个字段,只取其中两个的写法,如下,数量对应,位置对应,其他用逗号占位

 

 

5、在查询SQL语句中,发现查询结果是中文的时候Jmter无法显示

解决方法:这时候我们可以在 JDBC Connection Configuration 的 Database URL 我们填写的数据库信息后面添加一串:?useUnicode=true&characterEncoding=utf8

 6、分页-limit ${pagesize*pagenum+1},10--limit 10 OFFSET ${pagesize*pagenum}

方法一:

SELECT id FROM cb_account order by id limit 1,10;
SELECT id FROM cb_account order by id limit 11,10;
SELECT id FROM cb_account order by id limit 21,10;

SELECT id FROM cb_account order by id limit ${pagesize*pagenum+1},10

 

 方法二:

SELECT id FROM cb_account order by id limit 10
SELECT id FROM cb_account order by id limit 10 OFFSET 10
SELECT id FROM cb_account order by id limit 10 OFFSET 20
SELECT id FROM cb_account order by id limit 10 OFFSET pagesize*pagenum

 

posted @ 2023-02-16 23:21  依羽杉  阅读(222)  评论(0)    收藏  举报