Maven & Jenkins 与 Selenium 集成教程
Jenkins 在 Selenium 中的作用是什么?
Jenkins 是由 Hudson lab 开发的领先的开源持续集成工具。它是跨平台的,可以在 Windows、Linux、Mac OS 和 Solaris 环境中使用。Jenkins 用 Java 编写。Jenkins 的主要用途是监控任何作业,例如 SVN 签出、cron 或任何应用程序状态。当作业中发生特定步骤时,它会触发预先配置的操作。
Jenkins 的重要功能
- 变更支持: Jenkins 生成 SVN 等存储库中所有变更的列表。
- 永久链接: Jenkins 提供最新构建或失败构建的直接链接,可用于轻松沟通。
- 安装: Jenkins 易于安装,既可以使用直接安装文件 (exe),也可以使用 war 文件通过应用服务器部署。
- 电子邮件集成: Jenkins 可以配置为通过电子邮件发送构建状态的内容。
- 易于配置: 在 Jenkins 上配置各种任务很容易。
- TestNG 测试: Jenkins 可以配置为在每次 SVN 构建后运行 TestNG 上的自动化测试构建。
- 多台虚拟机: Jenkins 可以配置为在多台机器上分发构建。
- 项目构建: Jenkins 记录 jar 的详细信息、jar 的版本以及构建和 jar 编号的映射。
- 插件: 可以在 Jenkins 中配置第三方插件以使用功能和附加功能。
为什么选择 Jenkins 和 Selenium?
- 在 Jenkins 中运行 Selenium 测试,可让您在软件每次更改时运行测试,并在测试通过时将软件部署到新环境。
- Jenkins 可以安排您的测试在特定时间运行。
- 您可以保存执行历史记录和测试报告。
- Jenkins 支持 Maven 进行持续集成中的项目构建和测试。
Maven 在 Selenium 中的作用是什么?
Maven 是一个强大的项目/构建管理工具,基于 POM(项目对象模型)的概念,它包括项目信息和 Maven 的配置信息,例如构建目录、源目录、依赖项、测试源目录、目标、插件等。
为什么选择 Maven 和 Jenkins
Selenium WebDriver 非常适合浏览器自动化。但是,当将其用于测试和构建测试框架时,它显得功能不足。将 Maven 与 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) 在 Eclipse IDE 中,从 Eclipse 主菜单中选择 Help | Install New Software。
步骤 2) 在安装对话框中,输入 URL https://www.eclipse.org/m2e/。选择 Work with 和 m2e 插件,如下图所示
步骤 3) 单击 Next 按钮并完成安装。
使用 Maven 配置 Eclipse
安装 m2e 插件后,我们现在需要创建 Maven 项目。
步骤 1) 在 Eclipse IDE 中,通过从 Eclipse 菜单中选择 File | New | Other 来创建一个新项目。
步骤 2) 在 New 对话框中,选择 Maven | Maven Project,然后单击 Next
步骤 3) 在 New Maven Project 对话框中,选择 Create a simple project,然后单击 Next
步骤 4) 在 Group Id: 和 Artifact Id: 中输入 WebdriverTest,然后单击 finish
步骤 5) Eclipse 将创建具有以下结构的 WebdriverTest
步骤 6) 右键单击 JRE System Library,然后从菜单中选择 Properties 选项。
在 Properties for JRE System Library 对话框中,确保选择了 Workspace default JRE,然后单击 OK
步骤 7). 从 Project Explorer 中选择 pom.xml。
pom.xml 文件将在编辑器部分打开
步骤 8) 在 <project> 节点中将 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 类。在 Name: 文本框中输入包名“example”和“NewTest”,然后单击 Finish 按钮,如下图所示
步骤 10). Eclipse 将创建 NewTest 类,如下图所示
步骤 11) 将以下代码添加到 NewTest 类
此代码将验证 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 | Convert to TestNG。
Eclipse 将创建 testng.xml,它表明您只需要运行一个名为 NewTest 的测试,如下图所示
更新项目并确保文件出现在 Package Explorer 树中(右键单击项目 – 刷新)。
步骤 13) 现在您需要通过此 testng.xml 运行测试。
因此,转到 Run Configurations 并创建一个新的启动 TestNG,选择项目并将 Suite 字段设置为 testng.xml,然后单击 Run
确保构建成功完成。
步骤 14). 此外,我们需要添加
- maven-compiler-plugin
- maven-surefire-plugin
- testng.xml
到 pom.xml。
maven-surefire-plugin 用于配置和执行测试。此处,插件用于为 TestNG 测试配置 testing.xml 并生成测试报告。
maven-compiler-plugin 用于帮助编译代码并使用特定的 JDK 版本进行编译。将以下代码片段中的所有依赖项添加到 pom.xml 的 <plugin> 节点中
步骤 15) 要在 Maven 生命周期中运行测试,右键单击 WebdriverTest 并选择 Run As | Maven test。Maven 将从项目中执行测试。
确保构建成功完成。
如何将 Jenkins 与 Selenium WebDriver 集成
以下是安装 Jenkins 并将其配置为运行 Maven 和 TestNg Selenium 的步骤
安装
步骤 1) 访问 http://jenkins-ci.org/ 并下载适用于您操作系统的正确软件包。安装 Jenkins。
步骤 2) 将 Jenkins 解压到指定文件夹。运行 exe 文件,如下图所示
步骤 3) 在 Jenkins 1.607 Setup 窗口中单击 Next 按钮。
步骤 4) 最后单击 Install 按钮。
步骤 5) 安装完成后,在浏览器窗口中导航到 Jenkins 仪表板(默认情况下为 https://:8080)。
步骤 6) 单击 New Item 链接以创建 CI 作业。
步骤 7) 选择 Maven 项目单选按钮,如下图所示
使用 Build a Maven Project 选项,Jenkins 支持构建和测试 Maven 项目。
步骤 8) 单击 OK 按钮。在 Jenkins 仪表板中创建了一个名为“WebdriverTest”的新作业。
步骤 9) 转到 Manage Jenkins => Configure System,如下图所示。
单击 JDK 安装并配置 JDK,如下图所示
步骤 10) 转到新作业的 Build 部分。
步骤 11) 单击 Apply 按钮。
步骤 12) 在 WebdriverTest 项目页面上,单击 Build Now 链接。
Maven 将构建项目。然后 TestNG 将执行测试用例。
步骤 13) 构建过程完成后,在 Jenkins 仪表板中单击 WebdriverTest 项目
步骤 14) WebdriverTest 项目页面显示构建历史记录和结果链接,如下图所示
步骤 15) 单击“最新测试结果”链接以查看测试结果,如下图所示
步骤 16). 选择特定的构建,然后单击“控制台输出”即可查看当前状态。
安排 Jenkins 自动执行。
安排构建(Selenium 测试)是 Jenkins 的重要功能之一,它根据定义的条件自动触发构建。Jenkins 在“构建触发器”配置下提供了多种触发构建过程的方法。
例如
在 Schedule 文本框中输入 0 23 * * *,如下图所示。这将每天晚上 11 点触发构建过程。
不使用 Maven 的 Jenkings
要在 Jenkins 中运行纯 TestNg 脚本,请在构建中输入以下内容
D:>java -cp “Pathtolibfolder\lib\*;Pathtobinfolder\bin” org.testng.TestNG testng.xml
- 点击保存按钮。
- 注意:lib 和 bin 文件夹的实际路径需要添加到上述命令中。
- 保存命令后,Jenkins 将在预定义的时间构建项目,并且此命令将使用 TestNG 运行。
- 结果将存储在自定义报告 HTML 文件中,该文件可以通过 Jenkins 配置通过电子邮件发送。
- 代码的输出将是
使用 Jenkins 的好处
- 早期问题发现 – 可以在软件开发的早期阶段检测到错误
- 自动集成 – 无需单独的精力来集成所有更改
- 安装程序 – 在开发的任何阶段都可用的可部署系统
- 记录 – 维护部分构建记录
- 支持和插件:Jenkins 受欢迎的原因之一是拥有庞大的社区支持。此外,还有许多现成的插件可供使用,可帮助您扩展其功能。