如何使用 selenium WebDriver 和数据库?是否可以使用 Java 的 selenium webdriver 进行数据库测试?如何使用 java 将数据库与 selenium webriver 连接。
3 回答
我最近与我们的 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 是否会阻止您使用数据库?不
Selenium 在其 API 中没有任何东西可以连接到数据库并执行查询。Selenium 是一个浏览器自动化工具。如果你使用 Selenium 来测试你的数据库,那你就错了!
此数据库测试是否与在浏览器中打开 Web 应用程序有关?如果是,则可以使用 selenium/WebDriver。如果您的答案是否定的,那么 WebDriver/Selenium 不是您需要的工具!
//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();
}