四、JAVA接口测试框架设计 -用 JdbcTemplate实现sql交互

接口测试中对于数据库的交互是很重要的,主要体现在用例的前置条件、数据处理、断言校验等。
使用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 >
ps:一般list方法可用于返回数据数量的对比
(2)还可以使用 update() 方法实现delete、update、instert 的sql语句。

你可能感兴趣的:(四、JAVA接口测试框架设计 -用 JdbcTemplate实现sql交互)