使用数据库进行测试 Selenium 以及 JDBC:如何连接?

⚡ 智能摘要

使用数据库进行测试 Selenium 它依赖于 JDBC,因为 WebDriver 本身只验证浏览器层。以下步骤展示了如何打开一个 MySQL 连接、运行 SQL、读取 ResultSet 并验证存储的数据。

  • ???? JDBC桥接: Selenium WebDriver 只驱动浏览器,因此 JDBC 为每个数据断言提供数据库层。
  • 🧩 驾驶员类别: 现代 MySQL Connector/J 会自动注册 com.mysql.cj.jdbc.Driver,因此显式调用 Class.forName 是可选的。
  • 🔗 连接字符串: A MySQL URL 遵循 jdbc:mysql://host:3306/database,其中 3306 是默认服务器端口。
  • 📥 结果处理: Statement.executeQuery 返回一个 ResultSet,您可以使用 next() 遍历该 ResultSet 并通过 getString 读取它。
  • 🛡️ 资源安全: try-with-resources 即使在断言过程中失败,也会关闭 Connection、Statement 和 ResultSet。
  • 🚀 查询规范: PreparedStatement 参数消除了注入风险,并允许服务器重用缓存的执行计划。

使用数据库测试 Selenium

数据库连接 Selenium

Selenium Webdriver 仅限于 测试与验证 使用浏览器访问您的应用程序。要使用 Selenium Webdriver 进行数据库验证,您需要使用 JDBC(“Java 数据库连接”)。

JDBC(Java 数据库连接)是 SQL 允许您执行 SQL 语句的级别 API。它负责 Java 编程语言和各种数据库。JDBC API 提供以下类和接口

  • 司机经理
  • 驱动器
  • 连接升级包
  • 个人陈述
  • 结果集
  • SQL异常

如何连接数据库 Selenium

为了使用测试数据库 Selenium,你需要遵循以下3个步骤

连接数据库 Selenium

步骤 1)建立与数据库的连接

为了建立与数据库的连接,语法是

DriverManager.getConnection(URL, "userid", "password" )

在这里,

  • Userid是数据库中配置的用户名
  • 配置用户的密码
  • URL 格式为 jdbc:<数据库类型>://ip地址:端口号/数据库名称”
  • - 您尝试连接的数据库的驱动程序。要连接到 Oracle 数据库,此值为“oracle”。要连接到 MySQL 中名为“emp”的数据库,此值为“”。 URL 将是 jdbc:mysql://localhost:3036/emp

创建连接的代码如下

Connection con = DriverManager.getConnection(dbUrl,username,password);

您还需要使用代码加载 JDBC 驱动程序

Class.forName("com.mysql.jdbc.Driver");
⚠️ 警告: com.mysql.jdbc.Driver 在 Connector/J 8.0 中已被弃用。请使用 com.mysql.cj.jdbc.Driver。自 JDBC 4.0 起,驱动程序会自动注册,因此 Class.forName 是可选的。 MySQL 监听的是 3306,而不是 3036。

步骤 2)向数据库发送查询

一旦建立连接,您就需要执行查询。

您可以使用 Statement 对象来发送查询。

Statement stmt = con.createStatement();

一旦创建了语句对象,就可以使用 executeQuery 方法执行 SQL 查询

stmt.executeQuery(select *  from employee;);
⚠️ 警告: executeQuery 接受一个字符串参数,因此请用引号括起来 SQL 语句:executeQuery(“select * from employee”)。对于用户输入,请使用 PreparedStatement。

步骤3)处理结果

执行查询的结果存储在 ResultSet 对象中。

Java 提供了大量先进的方法来处理结果。下面列出了其中一些方法

处理结果

数据库测试示例 Selenium

步骤1) 安装 MySQL 服务器 MySQL 工作台

查看 Mysql 和 Mysql Workbench 完整指南 开始

安装时 MySQL 服务器,请注意数据库

  • 用户名
  • 密码
  • 端口号

后续步骤中将需要它。

MySQL Workbench 让您可以轻松管理数据库,而无需编写 SQL。不过,您也可以使用 MySQL 终端与数据库交互。

步骤2) In MySQL WorkBench,连接到您的 MySQL 服务器

数据库测试 Selenium

在下一个屏幕中,

  1. 选择本地实例 MySQL
  2. 输入端口号
  3. 输入用户名
  4. 输入密码
  5. 单击确定

数据库测试 Selenium

步骤3) 要创建数据库,

  1. 单击创建架构按钮
  2. 输入架构/数据库的名称
  3. 点击应用

数据库测试 Selenium

步骤4) 在导航菜单中,

  1. 单击 emp 数据库下方的“表”
  2. 输入表名称作为 employee
  3. 输入姓名和年龄等字段
  4. 点击应用

数据库测试 Selenium

您将看到以下弹出窗口。点击应用

数据库测试 Selenium

步骤5) 我们将创建以下数据

姓名 车龄
首页 25
Nick 36
Bill 47

在表中创建数据

  1. 在导航器中,选择员工表
  2. 在右侧窗格中,单击“表单编辑器”
  3. 输入姓名和年龄
  4. 点击应用

数据库测试 Selenium

重复此过程直到所有数据都创建完毕

数据库测试 Selenium

步骤6) 下载 MySQL JDBC 连接器 开始

数据库测试 Selenium

步骤7) 将下载的 Jar 添加到你的项目中

  1. 右键单击您的 Java 文件。然后单击“构建路径”→“配置构建路径”。
  2. 选择库
  3. 点击添加外部 JAR
  4. 你可以看到 MySQL 你的库中的连接器 java
  5. 单击打开将其添加到项目中

数据库测试 Selenium

步骤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://localhost: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();			
		}
}
⚠️ 警告: 列表内容按发布状态保留。现代等效项:com.mysql.cj.jdbc.Driver,端口 3306,小写包名,以及使用 try-with-resources 进行清理。

步骤9) 执行代码并检查输出

数据库测试 Selenium

同样的步骤也适用于任何关系型引擎。

常用数据库的 JDBC 驱动程序和连接字符串

MySQL 这只是其中一种选择。JDBC 模式在不同引擎中保持不变:导入语句、Statement 调用和 ResultSet 循环都不会改变。只有驱动程序组件和 URL 由于不同数据库之间存在差异,因此当被测应用程序在另一个数据库上运行时,请使用下表。

数据库 驾驶员级别 示例连接 URL 默认端口
MySQL com.mysql.cj.jdbc.Driver jdbc:mysql://localhost:3306/emp 3306
PostgreSQL org.postgresql.Driver jdbc:postgresql://localhost:5432/emp 5432
Oracle oracle.jdbc。Oracle驱动器 jdbc:oracle:thin:@localhost:1521:orcl 1521
SQL服务器 com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=emp 1433

端口号是导致首次连接失败的主要原因。连接被拒绝错误几乎总是意味着端口号不正确。 URL 与服务器实际监听的端口不匹配。请先检查服务器配置,再考虑使用默认值。

每个驱动程序都以单独的 JAR 文件形式提供,您需要按照步骤 7 中的说明将其添加到构建路径中。上面列出的每个引擎都会自动注册自身,因此无需使用 `Class.forName` 语句。这意味着一个辅助方法即可服务于您的测试套件所针对的所有环境。

常见问题

不。自 JDBC 4.0 起(Java 6)DriverManager 通过 ServiceLoader 机制发现驱动程序,因此只需将 Connector/J JAR 添加到类路径即可。仅当旧版容器无法自动注册驱动程序时才需要调用此方法。

运行时类路径中缺少 Connector/J JAR 文件,或者 URL 文件格式错误。请确认 JAR 文件出现在“引用库”下,并检查…… URL 以 jdbc:mysql:// 开头,并指定一个可访问的主机和端口。

是的。例如助理。 GitHub 副驾驶 根据模式描述搭建连接助手、ResultSet 循环和断言。 Rev在提交之前,检查每个生成的查询,确保表名正确且不存在注入安全问题。

AI模型能够生成逼真的种子行,建议边界值,并标记模式迁移后出现的偏差。诸如此类的平台 Testim 将此方法应用于维护,但为了保证参考文献的完整性,仍然需要人工审核。

务必如此。未关闭的 Connection 或 ResultSet 会在长时间的测试用例执行过程中耗尽服务器连接池。请将它们包裹在 try-with-resources 语句中,或者在 @AfterMethod 代码块中关闭它们,以便即使断言失败也能执行清理操作。

总结一下这篇文章: