Как интегрировать Jenkins и Maven с помощью селена?
Jenkins — один из популярных инструментов для непрерывной интеграции, управления сборки и тестирование автоматизации … Теги с DevOps, Jenkins, CiCd, Maven.
Jenkins является одним из популярных инструментов для непрерывной интеграции, управления сборки и тестирование автоматизации. Maven — популярный инструмент для создания автоматизации, который широко используется для проектов Java. Комбинация селена, Maven, интеграции Jenkins — это вершина непрерывной интеграции и развертывания.
Как часть тестирования автоматизации, мы уверены, что ваша команда поднимается многочисленными Тестовая автоматизация селена скрипты через день. Поскольку сам Selenium не используется для непрерывной интеграции, селена, Maven и Jenkins Integration, используют для управления сборки и непрерывной интеграции. В этой статье мы смотрим на использование Maven и Jenkins с Selenium.
Обзор Selenium, Maven & Jenkins
Maven является популярным инструментом автоматизации сборки, который в основном используется для проектов Java. Преимущество использования Maven заключается в том, что библиотеки Java и плагины загружаются на динамическую базу из центрального хранилища Maven 2.
Зависимости и другая необходимая информация о создании данных хранятся в файле POM.XML проекта. После загрузки зависимости хранятся в локальном кэше (репозиторий .m2) и то же самое используется для генерации сборки. Это упрощает процесс сборки, так как любая новая зависимость проекта должна быть добавлена только в POM.xml, то есть ручной загрузки и монтажные пакеты не требуются.
Jenkins — это инструмент CI/CD с открытым исходным кодом, который помогает в автоматизации мероприятий, связанных с сборкой, тестом и развертыванием. Дженкинс обладает обширной экосистемой плагинов, является открытым источником, а также страстное сообщество — факторы, которые можно отнести к функциям Дженкинса.
В этой Maven и Jenkins с блогом Selenium мы будем использовать Testng, что является популярной тестовой структурой, которая вдохновлена Junit. Он широко используется для таких областей тестирования, как функциональное тестирование, сквозное тестирование и многое другое.
Это набор инструментов, которые мы использовали в демонстрации:
Maven — Инструмент управления проектами в Java [ Ссылка Несомненно
Testng — Популярная система автоматизации тестирования [ Ссылка Несомненно
Селен Webdriver — Библиотека в основном используется для автоматизации взаимодействий браузера [ Ссылка Несомненно
Дженкинс — Инструмент для непрерывной интеграции (CI) и непрерывного развертывания (CD) [ Ссылка Несомненно
Вот общий поток информации, когда селен, Maven и Jenkins интегрированы:
После того, как разработчик нажат код в репозиторий (например, GitHub), запускается сборка Jenkins.
Maven загружает зависимые библиотеки и пакеты и начинает выполнять сборку. Информация, связанная с Test Suite, доступна в Testing.xml, и то же самое используется в Pom.xml Отказ
Цель сборки (например, установка) для запуска автоматизированных испытаний установлено. То же самое достигается через плагин Maven-Surefire.
Плагин Maven-Surefire-Plugin сообщает Testng для проведения тестов, которые находятся под аннотацией @test Отказ
В зависимости от AUT (Application Community) и комбинации браузера (& OS), на которых выполняются перекрестные тесты браузера, Webdriver Selenium вызывает соответствующий экземпляр браузера и выполняет те же тесты автоматизации.
Результаты испытаний публикуются в HTML-отчетах, поскольку плагин HTML-издателя используется для генерации отчета.
Даже если один тестовый случай не удался, полный тест помечен состоянием «Не удалось».
Преимущества использования Maven и Jenkins с Selenium
Прежде чем мы продемонстрировать использование интеграции Selenium Maven Jenkins, мы посмотрим на основные преимущества использования Maven и Jenkins с Selenium:
Всякий раз, когда изменение выполнено в реализации, изменения развертываются в тестовой среде. Тестирование автоматизации выполняется непрерывно, и разработчики будут проинформированы о результатах сборки и тестирования.
Испытуемые люксы, которые включают в себя множество тестовых сценариев (или тестовых комбинаций), могут занять более длительную продолжительность для тестирования автоматизации. Ночной запуск по сборке может быть запланирован для сборки и выполнения на сервере Jenkins в таких случаях.
Как Maven использует POM.XML, он уменьшает общую зависимостью ручной загрузки файлов JAR. Кроме того, тип «Maven Project» в Jenkins помогает начать работу с Maven Selenium, интеграции Jenkins с несколькими настройками конфигурации.
Настройка интеграции Selenium Maven Jenkins подходит для разработки и тестирования команд, распространяемых в разных географических местах.
Предпосылки для проекта Jenkins Selenium
Для демонстрации Maven и Jenkins с Selenium следует установить следующие программные программы (или доступны) на машине, откуда инициируются тесты:
Демонстрация селена Maven Jenkins Integration
Для экономии времени мы не будем смотреть на каждый шаг создания проекта Maven. В случае, если вы хотите быстрый реконструкцию Maven с Selenium, вы можете ссылаться на этот учебник Maven для автоматизации тестирования Selenium. Шаги, используемые для создания проекта Maven в IMEE IDELEMIC, аналогичны тем, которые используются при создании проекта Maven в Eclipse IDE.
Если вы намереваетесь добавить любой новый плагин или банку на вышеупомянутый POM.xml, поиск того же на Репозиторий Maven и добавьте соответствующую зависимость/плагин в соответствующем разделе.
Тестовый люкс содержит два тестовых случая, а именно Test_Selenium4_todoApp () & test_selenium4_googlesearch (). Как показано ниже, что показано ниже, реализация этих испытаний хранится в отдельных файлах, а именно CrossBrowsertest.java и googlesearchtest.java, и оба являются частью пакета org.selenium4.
Тестовый сценарий TEST_SELENIM4_TODOAPP () предназначен для выполнения на Chrome (последней версии) для Windows 10. С другой стороны, тестовый сценарий Test_SeleNium4_googlesearch () должен быть выполнен на 4 различных комбинациях браузера и ОС, т.е. Chrome (Neighle) на Windows 10, Edge (84.0) на Windows 10, Chrome (Neighle) на MacOS Mojave и Firefox (последнее ) на ОС X Mavericks.
Записи в Testng.xml для Test_SeleNium4_googlesearch () были выровнены в соответствии с возможностями браузера, создаваемых генератором Lambdatest возможностей. Ниже показано, что возможности образца, создаваемые для Chrome (Neighle) & Windows 10 комбинации:
В реализации мы использовали прослушиватели Testng в Webdriver Selenium для тестирования автоматизации. На уровне Suite определяем имена классов для реализации слушателей в файле Testng XML. Аннотация @Listeners в Testng используется для добавления класса org.selenium4.googlesearchtest.
Как показано ниже, название теста «Испытание Google Search — 1» примет входные параметры, которые указывают браузер, версию, платформу и разрешение дисплея. Эти значения будут переданы методу испытаний в качестве аргументов, используя параметризованные аннотации (i.e. @ org.testng.annotations.parameters (значение = {«браузер», «версия», «платформа», «Разрешение»}).
package org.selenium4;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.IExecutionListener;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;
public class GoogleSearchTest implements IExecutionListener {
/* protected static EdgeDriver driver; */
String URL = "https://www.google.com/";
String search_string = "LambdaTest";
WebDriver driver = null;
WebElement search_box;
String exp_title = "Most Powerful Cross Browser Testing Tool Online | LambdaTest";
public static String status = "passed";
public static String username = "user-name";
public static String access_key = "access-key";
@Override
public void onExecutionStart() {
System.out.println("onExecutionStart");
}
@BeforeTest
@Parameters(value={"browser","version","platform", "resolution"})
public void testSetUp(String browser, String version, String platform, String resolution) throws Exception {
/*
WebDriverManager.edgedriver().setup();
driver = new EdgeDriver();
*/
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("build", "Google Search - Maven Parallel Testing with Jenkins Pipeline");
capabilities.setCapability("name", "Google Search - Maven Parallel Testing with Jenkins Pipeline");
capabilities.setCapability("platform", platform);
capabilities.setCapability("browserName", browser);
capabilities.setCapability("version",version);
capabilities.setCapability("tunnel",false);
capabilities.setCapability("network",true);
capabilities.setCapability("console",true);
capabilities.setCapability("visual",true);
try {
driver = new RemoteWebDriver(new URL("http://" + username + ":" + access_key + "@hub.lambdatest.com/wd/hub"), capabilities);
} catch (MalformedURLException e) {
System.out.println("Invalid grid URL");
}
System.out.println("Started session");
}
@Test
public void test_Selenium4_GoogleSearch() throws InterruptedException {
driver.navigate().to(URL);
driver.manage().window().maximize();
try {
/* Enter the search term in the Google Search Box */
search_box = driver.findElement(By.xpath("//input[@name='q']"));
search_box.sendKeys(search_string);
search_box.submit();
/* driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); */
/* Not a good programming practice, added for demonstration */
Thread.sleep(3000);
/* Click on the first result which will open up the LambdaTest homepage */
WebElement lt_link = driver.findElement(By.xpath("//h3[.='LambdaTest: Most Powerful Cross Browser Testing Tool Online']"));
lt_link.click();
/* driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); */
/* Not a good programming practice, added for demonstration */
Thread.sleep(5000);
String curr_window_title = driver.getTitle();
Assert.assertEquals(curr_window_title, exp_title);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
@AfterTest
public void tearDown() {
if (driver != null) {
((JavascriptExecutor) driver).executeScript(+ status);
driver.quit();
}
}
@Override
public void onExecutionFinish() {
System.out.println("onExecutionFinish");
}
}
Код прохождения
Шаг 1 — Необходимые пакеты импортируются до того, как фактическая реализация отключается. Поскольку Framework Testng используется для тестирования; Следовательно, его пакеты также импортируются до того, как его аннотации могут быть использованы.
Шаг 2 — IexcutyListener используется для мониторинга запуска и конца тестового набора, поскольку тестовый сценарий будет выполнен на различных входных комбинациях, которые передаются через файл Testng XML.
IexcutionListener содержит два метода — OnexecutyStart () и OneExcutionfinish (). OneExcutionStart () вызывается до начала теста, а OneCeCutionFinish () вызывается после того, как тесты/тестовые люксы закончили выполнение.
public class GoogleSearchTest implements IExecutionListener {
/* protected static EdgeDriver driver; */
String URL = "https://www.google.com/";
................................
................................
................................
@Override
public void onExecutionStart() {
System.out.println("onExecutionStart");
}
@Override
public void onExecutionFinish() {
System.out.println("onExecutionFinish");
}
Шаг 3 — метод, реализованный под @Beforetest Аннотация будет работать до того, как любой метод теста, принадлежащий к классу в этом теге. Поскольку мы используем параметризованные тестирование с помощью Testng, аннотация @parameters (значение = {«браузер», «версия», «платформа», «Разрешение»}) добавляется в метод теста.
public class GoogleSearchTest implements IExecutionListener {
/* protected static EdgeDriver driver; */
String URL = "https://www.google.com/";
String search_string = "LambdaTest";
WebDriver driver = null;
..............................
..............................
public static String status = "passed";
public static String username = "user-name";
public static String access_key = "access-key";
..............................
..............................
@BeforeTest
@Parameters(value={"browser","version","platform", "resolution"})
public void testSetUp(String browser, String version, String platform, String resolution) throws Exception {
..............................
..............................
}
Эти параметры будут переданы значения от Testng.xml, пример параметра, показанного ниже:
Шаг 4 — Способ TestSetup является параметризованным способом, который итеративно принимает тестовые параметры от Testng.xml до конца набора тестового набора.
Поскольку тесты выполняются на Selenium Great Cloud На лямбдатесте учетные данные состоят из имени пользователя и токена доступа, который можно использовать для доступа к AbdateSt Grid — @ hub.lambdatest.com/wd/hub.
API RemoteWDRIVE использует возможности удаленного URL-адреса и браузера, которые генерируются с использованием генератора LambdaTest возможностей и передаются к способу в форме входных параметров.
Шаг 5 — Метод испытаний реализован под @Test Аннотация. Соответствующие методы Selenium (aptelement, sendeys, please и многое другое) используются для определения поиска веб-элемента и выполнения соответствующих действий на одном.
@Test
public void test_Selenium4_GoogleSearch() throws InterruptedException {
driver.navigate().to(URL);
driver.manage().window().maximize();
try {
/* Enter the search term in the Google Search Box */
search_box = driver.findElement(By.xpath("//input[@name='q']"));
search_box.sendKeys(search_string);
search_box.submit();
..........................................
..........................................
}
..........................................
..........................................
}
Шаг 6 — Блокировка задержек — это не хорошая практика программирования, но мы добавили несколько задержек для наблюдения за выходом.
WebElement lt_link = driver.findElement(By.xpath("//h3[.='LambdaTest: Most Powerful Cross Browser Testing Tool Online']"));
lt_link.click();
/* Not a good programming practice, added for demonstration */
Thread.sleep(5000);
..........................................
..........................................
Шаг 7 — Метод, который реализован в соответствии с @Aftertest Аннотация освобождает ресурсы, выделенные экземпляром соответствующей Webdriver.
@AfterClass
public void tearDown() {
if (driver != null) {
((JavascriptExecutor) driver).executeScript("lambda-status=" + status);
driver.quit();
}
}
Вместо 8080 (номер порта по умолчанию, используемый Jenkins) Мы начинаем службу Дженкинса на порту 9090.
Шаг 3: посетите localhost: 9090 В веб-браузере для начала использования Jenkins.
Создайте новый пользователь (с привилегиями администратора). Войдите в систему, используя это имя пользователя, чтобы продолжить использование Jenkins.
Шаг 4: Поскольку проект использует Maven и Jenkins с Selenium, глобальные настройки и пути для Java & Maven должны быть настроены на Jenkins. Для настройки этих настроек перейдите к «Настроить систему» в разделе «Конфигурация системы».
В элементе назвала «глобальные свойства», добавьте следующие переменные среды:
Добавление этих переменных среды в конфигурации системы делает настройки Public (I.e. можно использовать для проекта Jenkins Freestyle Project и Jenkins Projection).
Шаг 5:HTML Publisher Plugin Должен быть установлен до того, как может быть выполнено действие после сборки для испытаний. То же самое можно сделать, навигацию на «Управление плагинами» и поиск «HTML Plugiver Plugin» на вкладке «Доступно». Нажмите «Установить» для установки плагина.
Примечание. Для тестирования перекрестных браузеров рекомендуется использовать Jenkins в формате .war, поскольку тесты выполняются в безголовом режиме только тогда, когда Jenkins используется в формате .war.
Селена Maven Jenkins Integration с использованием проекта Freestyle
Для создания проекта Freestyle, который использует интеграцию Selenium Maven Jenkins в качестве демонстрации, выполняет следующие шаги на Jenkins UI (I.E. Localhost: 9090/ )
( Примечание — Номер порта будет варьироваться в зависимости от порта, используемого Дженкинсом)
Шаг 1: В «Jenkins Ui» нажмите «Новый элемент».
Шаг 2: Введите имя работы как «Lambdatest — Selenium Maven Jenkins Integration (проект Maven) и выберите« Freestyle ».
Jenkins также предоставляет возможность создать проект «Maven», где настройки конфигурации, необходимые для настройки проекта, минимальны. Однако для этой демонстрации мы использовали проект «Freestyle».
Шаг 3: Перейти к «Build ‘🡪», вызывающую целей Maven верхнего уровня ». Версия Maven должна указывать на версию Maven, установленную на машине. В нашем случае это Maven 3.6.3.
Шаг 4: Нажмите «Advanced», чтобы установить цели, установите местоположение файлов POM для двух тестовых союзов. В нашем случае местоположения проекта ниже:
Как мы хотим выполнить параллельные сборки, мы используем следующую опцию с помощью команды MVN:
mvn -T 4 clean install
Эта команда выполнит сборки с 4 потоками. В разделе «Цели» вы должны ввести -T 4 чистую установку. Эта же цель установлена для Maven, основанных на обоих проектах. В «POM», дайте абсолютное расположение Pom.xml.
Шаг 5: «Действие после сборки» — публиковать HTML-отчеты, которые предоставляют информацию об общем сценарии тестов (I.E. Количество прошедших испытаний/неудачных/пропущенных и т. Д.). Выберите «Опубликовать HTML Reports» в «Добавьте действие после сборки».
Шаг 6:Maven Surefire Report Plugin Фалакирует сгенерированный тест — *. XML-файлы под $ {project_dir}/target/onefire-отчеты и рендерируют их с помощью doxia. В «каталоге HTML к Archive» введите абсолютный путь этого местоположения, содержащего VereFire отчетов.
Для тест-люкса 1:
HTML directory to archive - ${project_dir_1}/target/surefire-reports
Index Page(s) - index.html
Report Title - Test Scenario 1 Report
Для тест-люкса 2:
HTML directory to archive - ${project_dir_2}/target/surefire-reports
Index Page(s) - index.html
Report Title - Test Scenario 2 Report
Шаг 7: Проект теперь готовится. Нажмите на опцию «Создание сейчас», чтобы вызвать сборку.
Шаг 8: Нажмите на «Вывод консоли», чтобы засвидетельствовать прогресс построения, теста и этапов отчета.
Шаг 9: Как видно в «консольных журналах; Испытания успешно выполняются — пять тестовых случаев как часть первого тестового набора и один тестовый случай в составе второго тестового набора.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestSuite
onExecutionStart
Aug 10, 2020 6:25:33 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Started session
Aug 10, 2020 6:25:33 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Started session
Aug 10, 2020 6:25:34 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Started session
Aug 10, 2020 6:25:34 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Started session
Demonstration of Jenkins is complete
PASSED: test_Selenium4_ToDoApp
===============================================
To Do App Test
Tests run: 1, Failures: 0, Skips: 0
===============================================
Aug 10, 2020 6:26:04 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Started session
onExecutionFinish
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 107.038 sec
Results :
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ org.selenium4.CrossBrowserTest ---
[INFO] Building jar: C:\Users\Lenovo\IdeaProjects\Maven_Jenkins\target\org.selenium4.CrossBrowserTest-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ org.selenium4.CrossBrowserTest ---
[INFO] Installing C:\Users\Lenovo\IdeaProjects\Maven_Jenkins\target\org.selenium4.CrossBrowserTest-1.0-SNAPSHOT.jar to C:\Users\Lenovo\.m2\repository\org\example\org.selenium4.CrossBrowserTest\1.0-SNAPSHOT\org.selenium4.CrossBrowserTest-1.0-SNAPSHOT.jar
[INFO] Installing C:\Users\Lenovo\IdeaProjects\Maven_Jenkins\pom.xml to C:\Users\Lenovo\.m2\repository\org\example\org.selenium4.CrossBrowserTest\1.0-SNAPSHOT\org.selenium4.CrossBrowserTest-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.selenium.JenkinsMavenTest.CrossBrowserTest
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@6a38e57f
Aug 10, 2020 6:27:35 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Started session
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 23.51 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0paste the contents of Jenkinsfile as shown below. Click on Apply and Save.
Вот скриншоты отчетов HTML, которые генерируются для двух тестовых апартаментов Plugin Plugin HTML.
Селен Maven Jenkins Integration с использованием трубопровода Дженкинса
В этом разделе Maven и Jenkins с демонстрацией селена мы будем использовать трубопровод Jenkins, который использует удельную область домена (DSL) для реализации трубопровода в качестве кода.
Определение трубопровода Jenkins обычно записывается в файл с именем jenkinsfile. Этот файл будет содержать шаги, необходимые для запуска трубопровода Jenkins. Для быстрой резюме на декларативном трубопроводе Jenkins вы можете проверить это Учебник трубопроводов Дженкинса Отказ
Чтобы интегрировать Maven и Selenium с помощью трубопровода Дженкинса, вы должны выполнить шаги, упомянутые ниже:
Шаг 1: Создайте новый элемент под названием «Lambdatest — Selenium Maven Jenkins Integration (Pipeline Project)« Трубопровод типа ».
Шаг 2: В определении трубопровода вставьте содержимое jenkinsfile, как показано ниже. Нажмите на применить и сохранить.
Шаг 3: В разделе Post-Build Plugin HTML Plugiver используется для создания отчетов о тестировании после выполнения для двух тестовых сценариев.
Трубопровод в проходе
Шаг 1: Эта конкретная работа Jenkins может работать на любом агенте. Раздел с директивой Tools содержит все инструменты, которые должны быть установлены автоматически. То же самое также добавляется в переменную среды пути.
В машине, где будут выполнены тесты, JDK 1.8.0_251 и Maven 3.6.3 установлены. Алиас Maven и JDK указывают на соответствующие версии Maven и JDK.
Шаг 2: Директива об окружающей среде используется для определения переменных среды Project_dir_1 и Project_dir_2, который указывает на место, где присутствуют проекты Java. Эти переменные среды могут быть использованы для всех этапов или этапов, специфичных этапом, поскольку они определены на прогонах основных этапов.
Шаг 3: Параллельная директива в Дженкинсах используется для выполнения стадий трубопровода параллельно. В нашем случае трубопровод Дженкинса состоит из двух этапов — тестовый сценарий 1 и тестовой сценарий 2.
Шаг 4: Действия, выполняемые на обоих этапах, точно аналогичны, за исключением того, что они выполняются на разных проектах. Этап ‘ Тестовый сценарий 1 «Выполнен на узле» Plave_1 «И этап» Тестовый сценарий 2 «Выполнен на узле» Slave_2 ‘.
Если вы намерены выполнить трубопровод на любом агенте, вы можете пропустить с использованием любого конкретного имени агента на этих этапах. Вы можете обратиться к нашему Что такое Дженкинс Блог для понимания создания узлов в Дженкинсах.
В нашем случае мы создали два узла (SLAVE_1 и SLAVE_2) и сделали их онлайн, прежде чем запустить тесты.
Шаг 5: На следующем шаге строить сборку. Command MVN Clean Change выполняется на POM.XML, который присутствует в каталоге проекта. Мы используем машину Windows для выполнения, поэтому мы использовали команду BAT (или Batch) для запуска сборки Maven.
Шаг 6: Действие после сборки используется для публикации отчетов HTML для соответствующих этапов. Действия добавляются в соответствии с Директивой «Post». Мы хотим вызвать создание отчета о тестировании только в том случае, если сборка успешна. Следовательно, действия находятся под руководством успеха.
Как видно в демонстрации с использованием Freestyle Project, ReginectDIR установлен на место, где создаются вершины отчетов (i.e. $ {project_dir}/target/onefire-reports). Поле ReportFiles установлено на index.html (i.e. $ {project_dir}/target/surefire-reports/index.html).
Как только трубопровод добавлен в jenkinsfile, нажмите «Создать сейчас», чтобы начать процесс сборки.
Вы можете наведите курсор на любую сцену и нажать на «logs», чтобы посмотреть на прогресс выполнения этого конкретного этапа. Как видно из сценического снижения, два этапа выполняются параллельно.
Поскольку мы используем параллельные этапы с декларативным трубопроводом в Дженкинах, соответствующие тестовые случаи выполняются параллельно на сетке селена на основе облака на лямбдатесте. Как показано ниже, наш план Lambdatest поддерживает максимум пять тестов для выполнения параллельно.
Как показано ниже, тесты выполнили успешно.
Общее время выполнения составило примерно 6 минут. Вы можете зависеть на любую сцену, чтобы просмотреть журналы, связанные с этим этапом.
Как видно в усеченных журналах, очевидно, что шаги на двух этапах выполняются параллельно:
Вот скриншот отчетов HTML, которые генерируются как часть действий после сборки:
Упаковка
Запуск тестов Selenium в Jenkins дает гибкость для прохождения тестов каждый раз, когда есть изменение программного обеспечения, и эти изменения должны быть проверены на различных входных комбинациях. Maven используется в проектах Java, поскольку оно облегчает задачу управляющих зависимостей через файл POM.XML.
Фристайл проекты в Дженкинсах должны использоваться для проектов, которые не являются высокой сложностью. Трубопровод Jenkins должен использоваться, когда вы хотите определить трубопровод развертывания в качестве кода. Параллельная директива в трубопроводе Дженкинса должна использоваться для использования параллельного исполнения этапов в Дженкинсах. Дженкинсский трубопровод может быть интегрирован с облачной селеной сеткой, такими как лямбдатест , который также позволяет интегрировать Maven и Jenkins с Selenium более эффективным образом.
Мы надеемся, что, следуя в этом руководстве, вы легко интегрируете Maven и Jenkins с Selenium. Спасибо за чтение!