Selenium2测试框架构思-03

其实在我们测试的过程中会发现有很多数据问题需要处理,比如页面上返回的数据是不是对的?数据是不是全的?这些我们都需要我们有一个判断,但是这些数据如何来,现在我这里提供了3条路径来解决这个问题:1.数据库直接获取;2.通过接口返回数据;3.通过xls保存数据。当然在实现了以上三个功能后,我们可以依据这个做更多的事情。比如:接口测试,数据库测试,数据驱动。同时还可以用来定位一些问题。通过对数据库数据,接口返回数据,实际展示数据对比帮助我们定位问题具体原因。

我们先做数据库的一个处理。需要提前说明的是:我们需要获得mysql的资源,直接在pom中新增:

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.0.5</version>

需要准备几个参数:数据库驱动,数据库地址及名称,用户名,密码。这些直接在写在prop.properties 中并在GlobalSetting中定义好。之后我们来分析一下可能我们需要获取哪些数据

从上图可以看出在增删改都是不需要返回数据,但是我这里还是准备返回一个成功与否,仅通过是否执行进行判断。查询不管数据是单个,一行,或者多行直接返回一个List<Object[]>就更够解决所以我们只需要实现四个方法:连接数据库,返回boolean,返回List<Object[]>,断开数据库。其中连接放在构造器中,断开连接放在执行sql之后。具体代码如下:

String driver=GlobalSettings.sqlDriver;//声明数据库驱动

String url=GlobalSettings.sqlUrl;//ip地址和数据库名称

String user =GlobalSettings.sqlName;

String password =GlobalSettings.sqlPaw;

public Connection connection = null; // 数据库连接

public PreparedStatement preparedStatement = null; // 待查询语句描述对象;

public SqlTools(){

try {

Class.forName(driver);// 指定连接类型

connection = DriverManager.getConnection(url, user, password);// 获取连接 } catch (Exception e) { e.printStackTrace(); } } private void close(){ try { this.connection.close(); this.preparedStatement.close(); } catch (SQLException e) {

System.out.println("关闭数据库出现问题!!");

e.printStackTrace(); } }

public List<Object[]> getList(String sql) {

ResultSet resultSet = null;

List<Object []> list =new ArrayList<>();

try {

preparedStatement = connection.prepareStatement(sql); // 准备执行语句

resultSet = preparedStatement.executeQuery(); } catch (Exception e)

{ System.out.println("查询错误,请检查!!");

e.printStackTrace(); }

try { ResultSetMetaData rsMetaData =resultSet.getMetaData();

int cols= rsMetaData.getColumnCount(); //获取列数

while (resultSet.next()) {

String fields[]=new String [cols];

int col =0;

for(int i =0;i<cols;i++) {

fields[col]= resultSet.getString(i+1);

col++; }

list.add(fields); }

resultSet.close(); } catch (SQLException e) { e.printStackTrace(); }

close();

Object [][] result =new Object[list.size()][];

for (int i = 0; i < list.size(); i++) {

result[i]=list.get(i); }

return list; }

public boolean complySql(String sql) {

boolean flag = false;

try {

preparedStatement = connection.prepareStatement(sql);

preparedStatement.executeUpdate();

flag = true; } catch (Exception e) {

System.out.println("操作数据库时出现错误!!");

e.printStackTrace(); }

close();

return flag; }

猜你喜欢

转载自blog.csdn.net/qq_33668011/article/details/81238073