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/
2、MySQL版本8 与 MySQ版本5.7 jar有差异吗?
现在企业中,一般都是MySQL 5 和MySQL 8,5的版本,一般都是5.7.x
MySQL 5版本,jar包可以选择大于等于你数据库版本的任意jar包
mysql: com.mysql.jdbc.Driver
MySQL 8版本,选择的jar包要大于等于你版本号,一般情况,选择版本号相同的
MySQL是手写:
com.mysql.cj.jdbc.Driver
MySQL 8与MySQL 5的驱动Class不一样
3、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 必填
4、JDBC Request
一定要与JDBC Connection Configuration中配置的连接池名称(Variable Name for created pool )要一致
提供的查询类型有8种,常用的3种:
Select statement -- 查询语句类型;如果JDBC Request中的Query内容为一条查询语句,则选择这种类型。PS:如果该类型下写入多条语句,只执行第一条select语句。
Update statement -- 更新语句类型(包含insert和update);如果JDBC Request中的Query内容为一条更新语句,则选择这种类型。PS:如果该类型下写入多条update语句,依然只执行第一条。删除操作本质上是更新操作,insert操作本质是update操作
Callable statement:可调用语句类型,可以执行多条SQL语句。添加jdbc取样器,Query Type选Callable statement,添加多个语句 -- 注意,多条语句时,要用分号分隔语句!!!并且配置JDBC Connection configuration元件,只须在Database URL末尾加上?allowMultiQueries=true
Jmeter中,写SQL可以不写分号,要写多个sql就用多个jdbc request。默认不支持一个sql query中写多个sql
prepared select statement 、 prepared update statement带有 prepared开头,是脚本中,可以带有参数。
sql中带参数的写法:两种
直接在sql中,进行变量引用 ${var} 但是不推荐
用 ? 变量占位符 ====推荐
5、SQL查询多个字段,只取其中两个的写法,如下,数量对应,位置对应,其他用逗号占位
6、在查询SQL语句中,查询结果是中文的时候Jmter无法显示
解决方法:
可以在 JDBC Connection Configuration 的 Database URL 我们填写的数据库信息后面添加一串:
?useUnicode=true&characterEncoding=utf8
7、分页
limit ${pagesize*pagenum+1},10--limit 10 OFFSET ${pagesize*pagenum}
方法1:
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
方法2:
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
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。