51Testing软件测试论坛

标题: Jmeter数据库连接(MYSQL) [打印本页]

作者: 海鸥一飞    时间: 2022-8-23 15:07
标题: Jmeter数据库连接(MYSQL)
目标:Jmeter连接数据库,辅助接口自动化测试

1.添加JDBC驱动;
2.连接数据库;
3.查询需要的字段数据

添加JDBC驱动:

JDBC驱动 官网下载地址:https://dev.mysql.com/downloads/file/?id=477058

[attach]141746[/attach]

将压缩包中的mysql-connector-java-8.0.11.jar 添加到jmeter安装目录的lib/ext文件下,重启jmeter,即可生效。

[attach]141747[/attach]

连接数据库:

1.Jmeter添加JDBC Connection Configuration
路径:测试计划右键添加配置元件-JDBC Connection Configuration

[attach]141748[/attach]

variable name for created pool= 库名,需要与database url中的库名保持一致,否则会出错;

Database URL,格式为:jdbc:mysql://ip:端口号/库名?serverTimezone=UTC&characterEncoding=utf-8

JDBC Driver class : com.mysql.jdbc.Driver;

validation Query: select 1


输入数据库登录的用户名和密码,即可以连接数据库了。

不同数据库对应的配置情况:

Database Driver class Datebase URL validation Query
MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname} select 1
PostgreSQL org.postgresql.Driver jdbc:postgresql:{dbname} select 1
Oracle oracle.jdbc.driver.OracleDriver jdbcracle:thin:user/pass@//host:port/service select 1 from dual
Ingres (2006) ingres.jdbc.IngresDriver jdbc:ingres://host:port/db[;attr=value] select 1
MSSQL ①com.microsoft.sqlserver.jdbc.SQLServerDriver
②net.sourceforge.jtds.jdbc.Driver
①jdbc:sqlserver://host:port;databaseName=DBname
②jdbc:jtds:sqlserver://host:port/"+“library”
select 1
DB2 com.ibm.db2.jcc.DB2Driver jdbc:db2://host:port/{dbname} select 1 from sysibm.sysdummy1
查询需要的字段:

1.线程组右键添加-取样器-JDBC request

[attach]141749[/attach]

variable name of pool:需要连接的数据库名,与JDBC Connection Configuration保持一致;
Query Type:Jmeter5.4.1共有8种不同的类型,以下为区分的条件:

Query Type 区别
Select Statement 仅支持select语句,一次只能执行一条
Update Statement 支持非select语句,并且支持执行多条语句。若其中有select语句,会自动忽略;若第一条是select语句,报错
Callable Statement 只要语法正确,可以执行多条任意语句
Prepared select statement 用于绑定变量重用执行计划,对于多次执行的SQL语句,Prepared statement无疑是最好的类型
Prepared update statement 参考Prepared select statement
Commit 将未存储的SQL语句结果写入数据库表
Rollback 撤销指定SQL语句的过程
AutoCommit(false) 将用户操作一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务

Variable names:用逗号分隔的变量名列表,用于保存由Select语句、Prepared Select语句或CallableStatement返回的值。[attach]141750[/attach]
示例:

比较复杂的审批流程,可以通过数据库查询订单的当前审核人id及对应的username,获取对应的token,再调用审核接口完成整个审核过程。

常见问题及解决:

1.报错:java.sql.SQLException: Cannot create PoolableConnectionFactory (Access denied for user ‘root’@‘172.16.24.30’ (using password: YES))

解决:检查密码是否填写错误;


2.报错: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.)

解决:JDBC驱动版本有问题,更换与安装的jmeter匹配的版本








欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2