0

我是 SELENIUM TESTNG 的新手,我需要创建一个包含两个参数的方法,
一个是我发送参数表单 testng xml,另一个是从调用该方法的位置传递。

我想要一个可重用的代码来检查我想使用哪个数据库连接,并且相同的方法使用要执行的查询。

@Parameters({"env"})

@Test(dataProvider = "query")

public static int DataBase(String env,String query) throws SQLException, InstantiationException, 
        IllegalAccessException, ClassNotFoundException {

    Class.forName("net.sourceforge.jtds.jdbc.Driver");

    switch (env) {
     case "ENV1":
         con = DriverManager.getConnection("ENV1 CON");
         break;
     case "ENV2":
         con = DriverManager.getConnection("ENV2 Con");
         break;
    default:
            break;
    }   
    Statement statement = con.createStatement();

    // We use Sybase specific select getdate() query to return date
    ResultSet rs = statement.executeQuery(query);


    if (rs.next()) {
        S1 = rs.getInt(1);
        S2 = rs.getString(2);
        S3 = rs.getString(3); 
        System.out.println(S1+" "+S2+" "+S3);
    }
    rs.close();
    statement.close();
    con.close();

    return S1;
}

}

您能否告诉我如何实现这一目标。

4

1 回答 1

0

我使用下面的方法来调用测试,它对我有用

@Test(优先级=2)

@Parameters({"env",query"})
public void DBvalidate(String env, String query) 

{

 query = "select * from emp";

 String data1 = DB.DataBase(env, query);

}

对我来说效果很好

于 2020-01-29T19:09:02.407 回答