0

如何使用 selenium WebDriver 和数据库?是否可以使用 Java 的 selenium webdriver 进行数据库测试?如何使用 java 将数据库与 selenium webriver 连接。

4

3 回答 3

8

我最近与我们的 QA 团队合作评估 Selenium,我们从一堆问题开始,例如我们如何使用 Excel 工作表和数据库参数化我们的测试,我们如何对数据库进行断言,我们如何制作测试套件,保持测试运行的统计数据,等等。然后是你的问题。我认为这一切都归结为相同:

Selenium 网站开头说:“Selenium 使浏览器自动化。就是这样。你用这种能力做什么完全取决于你。”

如果您在 Java 领域,您可以在单元测试中使用该功能,例如 JUnit。在单元测试中,您使用 Selenium 的唯一目的是驱动浏览器——就好像您是与浏览器交互的人一样。

您想要测试的场景和您用作输入的数据/值不再是 Selenium 关心的问题,而是您如何(Java-)编写测试代码的问题。你能在 Java 中与那个数据库进行交互吗?如果是这样,您可以在 (JUnit) 单元测试中与其交互,从而将其数据/值用作测试场景的一部分。您使用这些数据/值来确定您的确切测试场景,或者作为浏览器输入的输入值,与 Selenium 无关。

换句话说:而不是这个:

JUnit calls Selenium calls database
et cetera

它宁愿是:

JUnit calls database
JUnit calls Selenium
et cetera

换句话说:

  • Selenium 是否适用于您的数据库?
  • Selenium 是否会阻止您使用数据库?
于 2013-09-19T06:57:49.923 回答
2

Selenium 在其 API 中没有任何东西可以连接到数据库并执行查询。Selenium 是一个浏览器自动化工具。如果你使用 Selenium 来测试你的数据库,那你就错了!

此数据库测试是否与在浏览器中打开 Web 应用程序有关?如果是,则可以使用 selenium/WebDriver。如果您的答案是否定的,那么 WebDriver/Selenium 不是您需要的工具!

于 2013-09-19T07:00:10.433 回答
0
        //Connection URL Syntax: "jdbc:mysql://ipaddress:portnumber/db_name"        
        String dbUrl = "jdbc:mysql://localhost:3036/emp";                   

        //Database Username     
        String username = "username";   

        //Database Password     
        String password = "pwd";                

        //Query to Execute      
        String query = "select *  from employee;";  

        //Load mysql jdbc driver        
        Class.forName("com.mysql.jdbc.Driver");         

        //Create Connection to DB       
        Connection con = DriverManager.getConnection(dbUrl,username,password);

        //Create Statement Object       
       Statement stmt = con.createStatement();                  

        // Execute the SQL Query. Store results in ResultSet        
        ResultSet rs= stmt.executeQuery(query);                         

        // While Loop to iterate through all data and print results     
        while (rs.next()){
                    String myName = rs.getString(1);                                        
                    String myAge = rs.getString(2);                                                
                    System. out.println(myName+"  "+myAge);     
            }       
         // closing DB Connection       
        con.close();            
}
于 2017-05-26T10:56:12.800 回答