天天看點

testng+mysql進行資料驅動(轉)

共用方法mysql讀取

import org.testng.annotations.DataProvider;

import org.testng.annotations.Test;

import java.sql.*;

import java.util.*;

public class JdbcReader {

    static Connection conn = null;

    public static List<Map<String, String>> getDataList(String driverClassName,

            String url, String username, String password, String sql,

            String columns[]) {

        List<Map<String, String>> paramList = new ArrayList<Map<String, String>>();

        Map<String, String> param = new HashMap<>();

        Statement stmt = null;

        try {

            // 注冊 JDBC 驅動

            Class.forName(driverClassName);

            // 打開連結

            conn = DriverManager.getConnection(url, username, password);

            // 執行查詢

            stmt = conn.createStatement();

            ResultSet rs = null;

            rs = stmt.executeQuery(sql);

            // 展開結果集資料庫

            while (rs.next()) {

                Map<String, String> map = new LinkedHashMap<String, String>();

                for (int i = 0; i < columns.length; i++) {

                    String cellData = rs.getString(i + 1);

                    map.put(columns[i], cellData);

                }

                paramList.add(map);

            }

            // 完成後關閉

            rs.close();

            stmt.close();

            conn.close();

        } catch (SQLException se) {

            // 處理 JDBC 錯誤

            System.out.println("處理 JDBC 錯誤!");

        } catch (Exception e) {

            // 處理 Class.forName 錯誤

            System.out.println("處理 Class.forName 錯誤");

        } finally {

            // 關閉資源

            try {

                if (stmt != null)

                    stmt.close();

                if (conn != null)

                    conn.close();

            } catch (SQLException se) {

                se.printStackTrace();

            }

        }

        return paramList;

    }

}

dataprovider使用

@DataProvider

    public Object[][] dbDataMethod() throws ClassNotFoundException, SQLException {

        String sql = "select * from cs1";

        String columns[] = {"xm", "id"};

        List<Map<String, String>> result = getDataList( sql, columns);

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

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

            files[i] = new Object[]{result.get(i)};

        }

        return files;

    }