使用 Selenium 进行数据库测试:如何连接?
Selenium 中的数据库连接
Selenium WebDriver 仅限于使用浏览器测试您的应用程序。要使用 Selenium WebDriver 进行数据库验证,您需要使用 JDBC(“Java 数据库连接”)。
JDBC (Java Database Connectivity) 是一个SQL级别 API,允许您执行 SQL 语句。它负责Java编程语言与各种数据库之间的连接。JDBC API 提供了以下类和接口:
- 驱动管理器
- 驱动程序
- 连接
- 声明
- 结果集
- SQLException
如何在 Selenium 中连接数据库
要使用 Selenium 测试您的数据库,您需要遵循以下 3 个步骤:
步骤 1) 连接到数据库
连接数据库的语法是:
DriverManager.getConnection(URL, "userid", "password" )
此处,
- Userid 是数据库中配置的用户名
- 已配置用户的密码
- URL 格式为 jdbc:
://ipaddress:portnumber/db_name - <dbtype> - 您尝试连接的数据库的驱动程序。要连接到 Oracle 数据库,此值将是“oracle”。要连接到 MySQL 中名为“emp”的数据库,URL 将是 jdbc:mysql://:3036/emp
创建连接的代码如下所示:
Connection con = DriverManager.getConnection(dbUrl,username,password);
您还需要使用以下代码加载 JDBC 驱动程序:
Class.forName("com.mysql.jdbc.Driver");
步骤 2) 向数据库发送查询
连接建立后,您需要执行查询。
您可以使用 Statement 对象发送查询。
Statement stmt = con.createStatement();
创建 Statement 对象后,使用 executeQuery 方法执行 SQL 查询
stmt.executeQuery(select * from employee;);
步骤 3) 处理结果
执行查询的结果存储在 ResultSet 对象中。
Java 提供了大量高级方法来处理结果。下面列出了一些方法:
使用 Selenium 进行数据库测试的示例
步骤 1) 安装 MySQL 服务器 和 MySQL Workbench
在此处查看 Mysql 和 Mysql Workbench 的完整指南here
安装 MySQL Server 时,请记下数据库
- 用户名
- 密码
- 端口号
后续步骤中将需要它。
MySQL Workbench 使管理数据库变得容易,无需编写 SQL 代码。但是,您也可以使用 MySQL 终端与数据库交互。
步骤 2) 在 MySQL WorkBench 中,连接到您的 MySQL 服务器
在下一个屏幕中,
- 选择 MySQL 的本地实例
- 输入端口号
- 输入用户名
- 输入密码
- 点击确定
步骤 3) 创建数据库,
- 点击创建 Schema 按钮
- 输入 Schema/数据库的名称
- 点击应用
步骤 4) 在导航菜单中,
- 点击 emp 数据库下的表
- 输入表名为 employee
- 输入字段为 Name 和 Age
- 点击应用
您将看到以下弹出窗口。点击应用
步骤 5) 我们将创建以下数据
名称 | 年龄 |
---|---|
顶部 | 25 |
尼克 | 36 |
比尔 | 47 |
将数据创建到表中
- 在导航器中,选择 employee 表
- 在右侧窗格中,点击表单编辑器
- 输入姓名和年龄
- 点击应用
重复此过程,直到所有数据都创建完成
步骤 6) 在此处下载 MySQL JDBC 连接器here
步骤 7) 将下载的 Jar 添加到您的项目中
- 右键单击您的 Java 文件。然后点击 Build PathàConfigure build path
- 选择库
- 点击添加外部 JAR
- 您可以在库中看到 MySQL 连接器 Java
- 点击打开将其添加到项目
步骤 8) 将以下代码复制到编辑器中
Package htmldriver; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.DriverManager; import java.sql.SQLException; public class SQLConnector { public static void main(String[] args) throws ClassNotFoundException, SQLException { //Connection URL Syntax: "jdbc:mysql://ipaddress:portnumber/db_name" String dbUrl = "jdbc:mysql://:3036/emp"; //Database Username String username = "root"; //Database Password String password = "guru99"; //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(); } }
步骤 8) 执行代码,并检查输出
Selenium 数据库测试摘要
步骤 1) 使用方法连接到数据库。
DriverManager.getConnection(URL, "userid", "password")
步骤 2) 使用 Statement 对象创建数据库查询。
Statement stmt = con.createStatement();
步骤 3) 使用执行查询将查询发送到数据库,并将结果存储在 ResultSet 对象中。
ResultSet rs = stmt.executeQuery(select * from employee;);
Java 提供了许多内置方法来使用 ResultSet 对象处理 SQL 输出