接口测试中对于数据库的交互是很重要的,主要体现在用例的前置条件、数据处理、断言校验等。
使用JDBCTemplate实现一个简单的数据库交互小工具。
1.pom包的引入:
mysql
mysql-connector-java
5.1.21
org.springframework.boot
spring-boot-starter-jdbc
1.5.1.RELEASE
com.alibaba
druid
1.2.9
2.在common(可自定义)文件下新建一个sql请求的类,首先讲你的账号、密码、地址设置为全局变量:
public class SqlConnection {
public static String ADD_test = "jdbc:mysql://11.111.1111.111:3306/payment?useSSL=false";
public static String PW_test = "QWERTyuiop";
public static String UN_test = "test";
}
(1)add为数据库地址, MySQL在高版本需要指明是否进行SSL连接,所以后面需要带useSSL = false,不用设置ssl。
(2)pw为密码
(3)UN为账号
(4)后缀均带有test是为了区分不同环境或者不同名称的数据库,便于后续使用连接。
3.在这个类中新建一个方法来实现jdbctempalte的配置:
public JdbcTemplate JdbcSql(String address,String password,String username){
//配置datasource数据源
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl(address);
dataSource.setUsername(username);
dataSource.setPassword(password);
// 将数据源配置给jdbcTemplate
JdbcTemplate jdbcTemplatesql = new JdbcTemplate(dataSource);
return jdbcTemplatesql;
}
(1)这个方法只是返回了一个配置完成的JdbcTempalte对象,并没有实现请求方法
(2)可以通过配置不同的地址、账号、密码来实现不同mysql库的连接。
4.实际应用一下,新建一个case文件,配置好对应的sql:
//需要引入的包
// 刚刚写好的sql请求方法
import common.SqlConnection;
// 需要用到jdbc的请求方法
import org.springframework.jdbc.core.JdbcTemplate;
// sql请求类中的所有变量
import static common.SqlConnection.*;
public class dataPushTest {
//获取数据库配置
SqlConnection sqlConnection = new SqlConnection();
// 配置账号密码和地址,生成一个mysql库的连接。
JdbcTemplate jdbcSql = sqlConnection.JdbcSql(ADD_test,PW_test,UN_test);
}
(1)可以生成多了 数据库的连接,只需要 给这个方法 传入不同的账号密码即可。
5.新建一个测试方法,使用数据库进行断言:
@Test(=)
public void BVT_listTest() throws IOException {
Map sqlresults = jdbcSql.queryForMap("SELECT* from FundBalanceDaily where organizationCode =? and reconDate = ? and deleted = ?","2021120999532972","2022-06-22",0);
Assert.assertEquals(sqlresults.get("fundId").toString(),"30312","数据库获取到的id正确");
}
(1)queryForMap查询出的数据类型为Map,还可以使用queryForList查询数据list,数据类型为List