目前还沉浸在java自动化测试中不能自拔!
自动化过程中免不了要从数据库取值与期望值比较,目前我项目刚开始就需要用到了。
下面我把操作过程写下来:
我的项目框架是java+maven+testNG,所以首先要在pom.xml中添加mysql-connector-java的依赖,如下所示:
mysql mysql-connector-java 6.0.6
然后写一个链接mysql的类,如下所示
/** * @author Helen * @date 2018年4月12日 */package common;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/** * 描述:mysql数据库链接处理 */public class mySQL { private static final String url = "jdbc:mysql://*****/**";/*jdbc:mysql://数据库IP/数据库名*/ private static final String user = "**";//数据库用户名 private static final String password = "**";//对应的用户密码 private Connection conn = null; private PreparedStatement pst = null; private ResultSet resultSet = null; public mySQL() { try { conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("数据库连接失败!"); e.printStackTrace(); } } /* 执行SQL语句:查询并返回结果, 这是单结果返回,我们测试的时候就是根据条件查询,然后返回一个结果与期望结果比较即可,所以单结果足已*/ public String getData(String sql, String targetName) { String result = null; try { pst = conn.prepareStatement(sql); resultSet = pst.executeQuery(); while (resultSet.next()) { result = resultSet.getString(targetName); } this.close(); } catch (Exception e) { System.out.println("执行查询语句失败"); e.printStackTrace(); } return result; } /* 关闭链接 */ private void close() { try { this.conn.close(); this.pst.close(); } catch (Exception e) { System.out.println("关闭数据库连接失败!"); e.printStackTrace(); } }}
下面在test调用mySQL执行查询操作,如下所示:
package myTest.mytest;import static org.testng.Assert.assertEquals;import org.testng.annotations.Test;import common.mySQL;public class mysqlTest { @Test public void getDataFromMysql() { mySQL mySQL = new mySQL(); String result = mySQL.getData("SELECT `name` from course where id=1","name");//查询语句 assertEquals(result, "PS提高班班"); }}
……