Selenium 与 Maven 集成 Jenkins

⚡ 智能摘要

Maven的 Jenkins Selenium 集成创建了一个自动化的持续测试管道,其中 Maven 管理项目依赖项和生命周期。 Jenkins 计划和触发器构建,以及 Selenium 执行浏览器测试,实现可重复、可靠且可扩展的端到端 Web 自动化。

  • 📦 Maven角色: Maven 3.x 通过 pom.xml 管理依赖项、构建生命周期和插件,从而无需手动处理 JAR 文件。 Selenium 项目。
  • 🔁 Jenkins 定位: Jenkins LTS课程表 Selenium 套件,监控 SCM 变更,并在每次提交或夜间 cron 任务时触发自动回归测试。
  • 🚀 管道电力: 结合 Maven, Jenkins, Selenium和 TestNG 形成完整的 CI/CD 循环,可在代码更改后几分钟内捕获缺陷。
  • ✅ 报告: Surefire 报告 Jenkins 建造历史 trac提供可共享的测试结果,包括控制台输出和 HTML 仪表板。
  • 🧪 人工智能增强: 现代人工智能插件会优先处理受影响的测试,预测不稳定情况,并缩小测试规模。 Jenkins 内部反馈循环 Selenium 管道。

Maven & Jenkins 整合 Selenium

什么是 Jenkins in Selenium?

Jenkins 是领先的开源持​​续集成工具,最初由 Hudson 实验室开发。它是跨平台的,可在 上运行。 Windows,Linux, macOS和 Solaris 环境。 Jenkins 被写成 Java 现在以如下形式分发: Jenkins LTS 版本适用于稳定的生产环境。其主要用途是监控任何作业,例如 SCM 检出、cron 计划任务或任何应用程序状态。 Jenkins 当作业中发生特定步骤时,触发预配置的操作。

的重要特征 Jenkins

  • 变更支持: Jenkins 生成 Git 或 SVN 等存储库中所有更改的列表。
  • 永久链接: Jenkins 提供指向最新版本或上次失败版本的直接链接,从而简化团队沟通。
  • 安装方式: Jenkins 使用本地安装程序、部署在应用服务器上的 WAR 文件或 Docker 镜像都可以轻松安装。
  • 电子邮件集成: Jenkins 可以配置为通过电子邮件发送每次构建的内容和状态。
  • 易于配置: 配置各种任务 Jenkins 通过网页控制面板操作非常简单。
  • TestNG 测试: Jenkins 可以配置为在以下情况下运行自动化测试构建: TestNG 每次提交到代码库后。
  • 多台虚拟机: Jenkins 可以将构建版本分发到多个代理机器上。
  • 项目构建: Jenkins 文档详细介绍了 JAR 文件、JAR 版本和映射关系。ping 将构建编号转换为工件。
  • 插件: 3rd 可以添加派对插件 Jenkins 扩展功能和附加特性。

Jenkins 和 Selenium?

  • 运行 Selenium 测试中 Jenkins 每次软件发生变更时,都可以执行测试,并在测试通过后将软件部署到新环境中。
  • Jenkins 您可以安排您的 Selenium 在特定时间运行的测试。
  • 您可以保存执行历史记录和测试报告。 trac能力。
  • Jenkins 支持使用 Maven 进行构建和 测试与验证 持续集成中的项目。

Maven 是什么 Selenium?

Maven 是一款功能强大的项目和构建管理工具,它基于 POM(项目对象模型)的概念,POM 包含项目信息和 Maven 配置数据,例如构建目录、源代码目录、依赖项、测试源代码目录、目标、插件等等。Maven 3.x 是目前稳定的版本,已被广泛使用。 Selenium 测试框架。

为什么是 Maven 和 Jenkins

Selenium WebDriver 非常适合浏览器自动化。但是,当用于测试和构建测试框架时,它的功能可能会显得不足。将 Maven 与 WebDriver 集成 Selenium 提供以下益处。
Apache Maven 为管理测试项目的全生命周期提供支持。

  • Maven 用于定义项目结构、依赖关系、构建和测试管理。
  • 使用 pom.xml(Maven)可以配置构建、测试和运行代码所需的依赖项。
  • Maven 在构建项目时会自动从中央仓库下载必要的文件。

如何安装 Maven 并使用 TestNG Selenium

以下是安装 Maven 并将其用于以下场景的步骤: TestNG Selenium.

在本教程中,我们将使用 Eclipse (Juno)IDE for Java 开发人员设置 Selenium WebDriver 项目。此外,我们还需要添加 m2eclipse 插件。 Eclipse 为了方便构建过程并创建 pom.xml 文件。
让我们添加 m2eclipse 插件。 Eclipse 按照以下步骤操作:

步骤1) In Eclipse IDE,选择 帮助 | 安装新软件 来自 Eclipse 主菜单。

步骤2) 在“安装”对话框中,输入 URL https://www.eclipse.org/m2e/。 选择 与...合作 以及如下截图所示的m2e插件:

安装 Maven 并使用 TestNG Selenium

步骤3) 点击 下一篇 点击按钮完成安装。

配置 Eclipse 使用 Maven

安装好 m2e 插件后,我们现在需要创建一个 Maven 项目。

步骤1) In Eclipse IDE,选择创建一个新项目 文件 | 全新发布 | 其他 来自 Eclipse 菜单。

步骤2) 点击 全新发布 对话框中选择 Maven的 | Maven 项目 并点击下一步。

安装 Maven 并使用 TestNG Selenium

步骤3) 点击 新建 Maven 项目 对话框选择 创建一个简单的项目 并点击下一步。

安装 Maven 并使用 TestNG Selenium

步骤4) 在中输入 WebdriverTest 组 ID: 和 工件 ID然后点击完成。

安装 Maven 并使用 TestNG Selenium

步骤5) Eclipse 将创造 Webdriver测试 具有以下结构:

安装 Maven 并使用 TestNG Seleniuml

步骤6) 右键点击 JRE 系统库 并选择 物业 选项。

安装 Maven 并使用 TestNG Selenium

点击 JRE 系统库的属性 对话框中,确保 工作区默认 JRE 选中后,单击确定。

安装 Maven 并使用 TestNG Selenium

步骤7) 选择 pom.xml ,来自 项目浏览器.

安装 Maven 并使用 TestNG Selenium

pom.xml 文件将在编辑器部分打开。

安装 Maven 并使用 TestNG Selenium

步骤8) 添加 Selenium,Maven, TestNG和 JUnit 依赖 pom.xml 中的节点:

	<dependencies>			
        <dependency>				
             <groupId>junit</groupId>								
             <artifactId>junit</artifactId>								
             <version>3.8.1</version>								
             <scope>test</scope>								
        </dependency>				
        <dependency>				
            <groupId>org.seleniumhq.selenium</groupId>								
            <artifactId>selenium-java</artifactId>								
            <version>2.45.0</version>								
		</dependency>				
        <dependency>				
            <groupId>org.testng</groupId>								
            <artifactId>testng</artifactId>								
            <version>6.8.8</version>								
            <scope>test</scope>							  			
       </dependency>				
</dependencies>

步骤9) 创建一个新的 TestNG 类。在“类”中输入包名称“example”和“NewTest”。 姓名:文本框并点击 完成 按钮,如以下屏幕截图所示:

安装 Maven 并使用 TestNG Selenium

步骤10) Eclipse 将创建 NewTest 类,如下面的屏幕截图所示:

安装 Maven 并使用 TestNG Selenium

步骤11) 将以下代码添加到 新测试 这段代码将验证类的标题。 Guru99 Selenium 页面。

package example;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		
import org.testng.Assert;		
import org.testng.annotations.Test;	
import org.testng.annotations.BeforeTest;	
import org.testng.annotations.AfterTest;		
public class NewTest {		
	    private WebDriver driver;		
		@Test				
		public void testEasy() {	
			driver.get("https://demo.guru99.com/test/guru99home/");  
			String title = driver.getTitle();				 
			Assert.assertTrue(title.contains("Demo Guru99 Page")); 		
		}	
		@BeforeTest
		public void beforeTest() {	
		    driver = new FirefoxDriver();  
		}		
		@AfterTest
		public void afterTest() {
			driver.quit();			
		}		
}	

步骤12) 右键单击 WebdriverTest 项目并选择 TestNG | 转换成 TestNG.
Eclipse 将创建 testng.xml 文件,该文件声明您只需要运行一个名为“test”的测试。 新测试 如以下截图所示:

安装 Maven 并使用 TestNG Selenium

更新项目并确保文件出现在项目树中。 包浏览器 (右键单击项目 - 刷新)。

安装 Maven 并使用 TestNG Selenium

步骤13) 现在你需要通过这个运行测试。 测试ng.xml.

所以,去吧 运行配置 并创建新的启动项 TestNG选择项目,设置字段 套件 as 测试ng.xml然后点击“运行”。

安装 Maven 并使用 TestNG Selenium

确保构建过程成功完成。

步骤14) 此外,我们还需要添加

  1. Maven 编译器插件
  2. Maven-surefire-插件
  3. 测试ng.xml

到 pom.xml。

maven-surefire-plugin 用于配置和执行测试。这里,该插件用于配置 testing.xml 文件。 TestNG 测试并生成测试报告。

maven-compiler-plugin 用于帮助编译代码,并指定使用特定的 JDK 版本进行编译。请将以下代码片段中的所有依赖项添加到 pom.xml 文件中。节点:

安装 Maven 并使用 TestNG Selenium

步骤15) 要在 Maven 生命周期中运行测试,请右键单击 WebdriverTest 项目并选择 运行方式 | Maven 测试Maven 将从项目中执行测试。

安装 Maven 并使用 TestNG Selenium

确保构建过程成功完成。

如何整合 Jenkins - Selenium 网络驱动程序

以下是安装步骤 Jenkins LTS 并将其配置为运行 Maven TestNG Selenium.

安装

步骤1) 在MyCAD中点击 软件更新 https://www.jenkins.io/download/ 并下载正确的文件。 Jenkins 适用于您操作系统的 LTS 版本。安装 Jenkins.

整合 Jenkins 与 Selenium 网络驱动程序

步骤2) 拉开拉链 Jenkins 解压到指定文件夹。运行该exe文件,如下图所示:

整合 Jenkins 与 Selenium 网络驱动程序

步骤3) 在 Jenkins 设置 窗口中,单击 下一篇 按钮。

整合 Jenkins 与 Selenium 网络驱动程序

步骤4) 点击 安装 最后的按钮。

整合 Jenkins 与 Selenium 网络驱动程序

步骤5) 安装完成后,导航至 Jenkins 浏览器窗口中的仪表盘(默认地址为 http://localhost:8080)。

整合 Jenkins 与 Selenium 网络驱动程序

步骤6) 点击 新物品 链接创建 CI 作业。

整合 Jenkins 与 Selenium 网络驱动程序

步骤7) 选择 Maven 项目单选按钮,如以下屏幕截图所示:

整合 Jenkins 与 Selenium 网络驱动程序

使用构建 Maven 项目 选项, Jenkins 支持构建和测试 Maven 项目。

步骤8) 单击“确定”按钮。系统将创建一个名为“WebdriverTest”的新作业。 Jenkins 仪表板。

整合 Jenkins 与 Selenium 网络驱动程序

步骤9) 在MyCAD中点击 软件更新 物业管理 Jenkins => 配置系统 如以下屏幕截图所示。

整合 Jenkins 与 Selenium 网络驱动程序

单击“JDK 安装”并配置 JDK,如以下屏幕截图所示:

整合 Jenkins 与 Selenium WebDrive

步骤10) 去 构建 新工作的一部分。

  • 在 根 POM 在文本框中,输入 pom.xml 的完整路径。
  • 在“目标和选项”部分,输入“clean test”。

整合 Jenkins 与 Selenium 网络驱动程序

步骤11) 点击 在断裂前, 按钮。

整合 Jenkins 与 Selenium 网络驱动程序

步骤12) 在 WebdriverTest 项目页面上,单击 立即建造 链接。

整合 Jenkins 与 Selenium 网络驱动程序

Maven 将构建该项目。然后它将具有 TestNG 执行测试用例。

步骤13) 构建过程完成后,在 Jenkins 点击仪表盘 Webdriver测试 项目。

整合 Jenkins 与 Selenium 网络驱动程序

步骤14) WebdriverTest 项目页面显示构建历史记录并链接至结果,如以下屏幕截图所示:

整合 Jenkins 与 Selenium 网络驱动程序

步骤15) 点击“最新测试结果”链接查看测试结果,如以下截图所示:

整合 Jenkins 与 Selenium 网络驱动程序

步骤16) 选择特定版本,点击“控制台输出“。

整合 Jenkins 与 Selenium 网络驱动程序

生产计划 Jenkins 自动执行

安排构建(Selenium 测试)是其重要特征之一 Jenkins它会根据定义的条件自动触发构建。 Jenkins 在构建触发器配置下,提供了多种触发构建过程的方法。

例如:
在 Schedule 文本框中输入 0 23 * * *,如以下屏幕截图所示。这将在每天晚上 11 点触发构建过程

Jenkins 自动执行

运用 Jenkins 没有 Maven

运行纯粹 TestNG 脚本中 Jenkins在构建过程中输入以下内容:

D:>java -cp “Pathtolibfolder\lib\*;Pathtobinfolder\bin” org.testng。TestNG 测试ng.xml

Jenkins 自动执行

  • 单击“保存”按钮。
  • 注意:上述命令中需要添加 lib 和 bin 文件夹的实际路径。
  • 保存命令后, Jenkins 将在预定时间构建项目,此命令将使用以下命令运行 TestNG.
  • 结果将存储在自定义 HTML 报告文件中,该文件可通过电子邮件发送。 Jenkins 组态。
  • 代码的输出结果为:

Jenkins 自动执行

使用的好处 Jenkins

  1. 及早发现问题——可以在软件开发的早期阶段检测到缺陷。
  2. 自动集成——无需额外操作即可集成所有更改。
  3. 安装程序——可在开发的任何阶段部署的系统。
  4. 记录——保留以往的建造记录。
  5. 支持和插件——原因之一 Jenkins它的受欢迎程度在于拥有庞大的社区支持。此外,还有许多现成的插件可供使用,帮助您扩展其功能。

常见问题

Maven 管理依赖项和构建生命周期, Selenium 驱动浏览器,并且 Jenkins 协调执行。它们共同构成一个完整的持续集成 (CI) 流水线,用于编译代码、下载所需的 JAR 文件并运行。 Selenium 每次提交都会自动进行测试并发布报告。

使用 Maven 3.x 进行依赖项和构建管理, Jenkins LTS 版本用于稳定持续集成。这些版本提供长期支持、安全补丁和广泛的插件兼容性。 Selenium WebDriver, TestNG以及 Surefire 报告插件。

是的。 Jenkins 在“构建触发器”部分使用 cron 风格的语法进行调度 Selenium 套房。例如,0 23 * * * 每晚 11 点运行套房。 Jenkins 还可以通过 SCM 轮询或 webhook 事件触发构建。

AI供电 Jenkins 插件可以预测不稳定的测试、自动调整构建代理,并检测控制台日志中的异常情况。它们可以减少流水线噪音、加速反馈,并建议最佳并行化方案,从而保持…… Selenium 随着测试次数增加到数千次,测试套件仍然可靠。

是的。基于人工智能的测试影响分析会将代码更改映射到受影响的区域。 Selenium 场景并仅运行相关的子集 Jenkins这样可以缩短反馈周期,降低基础设施成本,并通过在每晚构建中安排完整的回归测试来保持全面覆盖。

总结一下这篇文章: