Jenkins 与 Selenium 的集成 – 方法 1
步骤1:在 Jenkins 仪表板中,单击“新建项”以创建新项目。指定项目的名称,然后单击“自由式项目”选项。单击确定。
步骤2:在“常规”部分的“说明”框中输入项目说明。
步骤3:在“源代码管理”部分中,选择“无”。
步骤4:要安排作业,我们可以从给定的列表中选择所需的选项。现在让我们指定计划作业的持续时间。要提到持续时间,必须遵循以下一组规则。
期间必须以格式提及 |
分钟 小时 DOM 月份 道琼斯指数 |
分钟 |
一小时内的分钟数 (0–59) |
小时 |
一天中的一小时 (0–23) |
DOM |
每月的某一天 (1–31) |
月 |
月份 (1–12) |
道琼斯指数 |
星期几 (0–7),其中 0 和 7 是星期日 |
步骤5:创建一个项目,用于使用 Selenium WebDriver 和 TestNG 运行测试。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
package Pages;
import static org.testng.Assert.assertEquals;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class LoginPage {
WebDriver driver;
@BeforeTest
public void setUp() {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Shalini\\Downloads\\chrom86_driver\\chromedriver.exe");
driver = new ChromeDriver();
}
public void login() {
String login_url = "https://opensource-demo.orangehrmlive.com/";
driver.get(login_url);
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
driver.findElement(By.id("txtUsername")).sendKeys("Admin");
driver.findElement(By.id("txtPassword")).sendKeys("admin123");
System.out.println(driver.getTitle());
}
@Test
public void dashboard() {
driver.findElement(By.id("menu_dashboard_index")).click();
String textPresent = driver.findElement(By.xpath("//*[@id=\"content\"]/div/div[1]/h1")).getText();
String textToBePresent = "DashBoard";
assertEquals(textPresent, textToBePresent);
}
@AfterTest
public void tearDown() {
driver.quit();
}
}
|
步骤6:创建 TestNG.xml 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite">
<test name="LoginTest">
<groups>
<run>
<include name="DemoTest"/>
</run>
</groups>
<classes>
<class name="Pages.LoginPage">
</class>
</classes>
</test>
</suite>
|
步骤7:在项目文件夹中,将所有依赖项添加到单独的文件夹中。使用以下内容创建一个 bat 文件。
|
ava –cp bin;lib/* org.testng.TestNG TestNG.xml
|
指定在项目中创建的 TestNG.xml 文件的确切名称。
步骤8:在 Jenkins 仪表板中,选择我们最初创建的项目。单击配置。在“常规”部分中,单击“高级”,然后选中“使用自定义工作区”选项。指定测试项目路径。
步骤9:在“生成”部分中,单击“添加生成步骤”下拉框,然后选择“执行 Windows 批处理命令”选项。指定在步骤 7 中创建的 bat 文件的名称。
步骤10:单击“应用”,然后单击“保存”,将所有更改应用于 Jenkins 项目。现在单击“生成”,您将能够看到在 Jenkins 项目上运行的测试。
Jenkins 与 Selenium 的集成 – 方法 2
我们还可以通过与 Maven 集成在 Jenkins 中执行 Selenium 测试自动化。在研究集成之前,让我们快速介绍一下 Maven 以及为什么它与 Jenkins 一起广泛用于运行测试。
什么是 Maven?
Maven 是一个构建自动化工具,它允许我们在单个 pom.xml 文件中添加和管理所有依赖项。这允许用户在多个项目中重用相同的依赖项。通过在 pom.xml 文件中添加依赖项,依赖项会自动下载并添加到项目中,从而消除了将每个依赖项作为 JAR 文件添加到项目中的手动工作。
因此,通过集成 Maven、Jenkins 和 Selenium WebDriver,可以采用 DevOps 模型,从而在项目中实现持续集成。
如何安装 Maven?
步骤1:从他们的官方网站下载 Maven。
步骤2:添加MAVEN_HOME系统变量。
步骤3:设置指向 maven 目录的 bin 目录的路径。
步骤4:若要验证 Maven 的安装是否成功,请在命令提示符下键入。mvn –version
步骤5:创建一个 maven 项目,并在 pom.xml 文件中添加所有 maven 依赖项。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>demoProject</groupId>
<artifactId>demoProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package WebDriverProject;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class LoginClass {
WebDriver driver;
@BeforeTest
public void setup(){
System.setProperty("WebDriver.gecko.driver","C:\\Users\\Peter\\Downloads\\geckodriver-v0.26.0-win64\\geckodriver.exe");
driver = new FirefoxDriver(); //initialise the WebDriver
}
@Test
public void loginTest(){
driver.get("https://opensource-demo.orangehrmlive.com/"); //define the url
String pageTitle = driver.getTitle(); //get the title of the webpage
System.out.println("The title of this page is ===> " +pageTitle);
Assert.assertEquals("OrangeHRM", pageTitle); //verify the title of the webpage
driver.findElement(By.id("txtUsername")).clear();//clear the input field before entering any value
driver.findElement(By.id("txtUsername")).sendKeys("Admin");//enter the value of username
driver.findElement(By.id("txtPassword")).clear();
driver.findElement(By.id("txtPassword")).sendKeys("admin123");//enter the value of password
driver.findElement(By.id("btnLogin")).click(); //click Login button
System.out.println(“Successfully logged in”);
}
@AfterTest
public void teardown(){
driver.quit();
}
}
|
测试NG.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM"http://testng.org/testng-1.0.dtd">
<suite name="TestSuite">
<test name="LoginTest">
<groups>
<run>
<include name="DemoTest"/>
</run>
</groups>
<classes>
<classname=" WebDriverProject.LoginClass">
</class>
</classes>
</test>
</suite>
|
如何将 Maven 中的 Selenium 与 Jenkins 集成?
在上面的部分中,我们看到了如何将 Jenkins 与 Selenium WebDriver 集成。这种集成的最佳用例是为 Selenium 测试自动化实现它。Jenkins 与 Selenium WebDriver 的集成使您的跨浏览器测试脚本比以往任何时候都更加坚固。在本节中,我将解释如何在 Maven 的帮助下将 Jenkins 与 Selenium 测试脚本集成。
步骤1:启动 Jenkins 服务器。
步骤2:打开浏览器并导航到 localhost 和运行 Jenkins 的端口。
步骤3:单击仪表板中的“新建项目”。
步骤4:输入项目名称,然后选择项目类型为“Maven 项目”。
步骤5:单击确定。现在,您可以在仪表板中看到正在成功创建的作业。
步骤6:单击项目,然后单击配置。
步骤7:在“生成”部分下,输入 pom.xml 的完整路径。在目标和选项中,输入命令 clean test。
步骤8:单击“应用”,然后单击“保存”。
步骤9:单击“立即生成”。
步骤10:现在,生成将运行,成功完成生成后,将显示结果。要查看完整的日志,请单击控制台输出。
总结
总而言之,我们已经介绍了为什么 Jenkins 如此重要,以及如何将其与 Selenium WebDriver 集成以有效地运行我们的测试并实现持续集成的目标,使用 Jenkins 运行我们的测试会非常省时,并且结果可以通过完整的日志可视化,它有助于实现从开发、部署、测试、监控和发布开始的完整软件开发生命周期,也支持各种插件来实现项目要求,它还支持通过电子邮件提醒用户有关构建稳定性的信息,总而言之Jenkins是现在的技术人员不得不了解的一个技术!