一、下载对应的JDBC数据库驱动包
mysql的jdbc驱动包:mysql-connector-java-5.1.44-bin.jar;
下载地址:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.44.zip 解压放到自己想放的位置
二、JMETER导入对应的JDBC数据JAR包
JMeter需要连接数据库,就要导入对应的jdbc驱动jar包。操作步骤如下:
(1)选中【测试计划】,页面最下方【添加目录或jar包到ClassPath】,点击【浏览】;
(2)选择刚刚解压的目录里的mysql数据库的jdbc驱动jar包:mysql-connector-java-5.1.44-bin.jar;
(3)添加完成可看到对应的记录
三、JMeter连接Mysql数据库
(1)选择测试计划-右键添加配置元件-JDBC Connection Configuration
(2)填入对应的连接信息:
Variable Name for created pool:变量名,类似服务别名,可自行定义
DataBase URL:格式【jdbc:mysql://数据库地址:端口】,【jdbc:mysql://】是jdbc连接mysql数据库固定前缀
JDBC Driver Class:选择对应的驱动类
Username:用户名
Password:密码
四、创建线程组
(1)选中测试计划,右键添加线程组
(2)配置线程组参数
线程数:1
Ramp-Up时间(秒):1
循环次数:1
五、创建数据库请求
(1)选择线程组,右键【添加-取样器-jdbc request】
(3)配置jdbc request的内容
【Variable Name Bound to pool】要与(三)连接数据库时填写的【Variable Name for created pool】变量名一致。
【Query Type】:选择【Select Statement】。当然也可以选择insert、update等,不过我只是为了拿到数据库里的用户数据,用来作为接口测试的入参,所以select查询就足够了。
【Result Variable Name】:查询结果集的变量名;
【Handle ResultSet】:设置查询结果集的处理类型;
(4)这时候我们就可以允许一下看是否能查询到我们想要的值了。不过运行之前要先保存下来。
(5)点击允许,则执行线程组,发起jdbc request
(6)通过察看结果树,查看请求结果(6.1)从【取样器结果】我们可以看到jdbc Request请求响应成功
(6.2)从【请求-Request Body】可以查看请求数据:检查是不是我们写的sql;或者如果之前写的sql是带参数的,这里就可以看到实际发起请求的时候,具体的参数值。
(6.3)从【响应数据-Response Body】则可以查看本次请求返回的数据。
六、遇到的问题
1、Cannot create PoolableConnectionFactory (Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
此问题是由于没有导入jar包造成的,在测试计划中导入jar包就好了。我是重新再次导入包,选中测试计划再执行就没有出现这个提示了。
2、Response message: java.sql.SQLException: No database selected
此问题是因为JDBC Connection Configuration中Database URL写的不对,一定是要写库名,比如:
因为我连接的库里面有很多数据库,所以这里需要指明连接的数据库。