Selenium Continuous Integration with Jenkins using GIT
w tym poście staram się zachować kompletny przewodnik po ciągłej integracji Selenium (End to End Integration) z Jenkins. Jest to przewodnik po implementacji ciągłej integracji z Jenkins, Maven i TestNG z GitHub. Istnieje wiele narzędzi i technik, które można zintegrować w środowisku CI. Tutaj używam Selenium WebDriver, Java, TestNG, Maven i integruję je z Jenkinsem. Aby wdrożyć ciągłą integrację, wykonaj 9 kroków, o których wspomniałem poniżej.
- 1. Co To jest ciągła Integracja
- 2. Co To jest Maven
- 3. Budowanie Projektu Maven W Eclipse
- 4. Czym jest GIT
- 5. Co To jest Jenkins
- 6. Instalacja Jenkinsa
- 7. Konfigurowanie Jenkinsa dla projektu Maven
- 8. Skonfiguruj wtyczkę GIT w Jenkinsie
- 9. Uruchamianie projektu Maven z Jenkinsa
Co to jest ciągła Integracja
ciągła integracja jest w skrócie CI. Ciągła integracja jest praktyką programistyczną, która ma na celu zapewnienie poprawności oprogramowania. Po każdym zatwierdzeniu pakiet testów uruchamia się automatycznie i testuje oprogramowanie, aby upewnić się, czy oprogramowanie działa bez żadnych przerw. Jeśli jakikolwiek test się nie powiedzie, otrzymamy natychmiastową informację zwrotną „build is broken”.
w prostych słowach, ciągła integracja jest procesem weryfikacji poprawności oprogramowania.
niektóre z narzędzi ciągłej integracji to Jenkins, TeamCity, Bamboo, Travis, CircleCi, Bitbucket, CruiseControl
Co to jest Maven
Maven, słowo w jidysz oznaczające „akumulator wiedzy”. Maven to narzędzie do automatyzacji kompilacji używane głównie w projektach Java. Pomaga w budowaniu oprogramowania, opisuje sposób jego budowy i opisuje jego zależności. Dynamicznie pobiera biblioteki Java i wtyczki Maven z jednego lub więcej repozytoriów, takich jak centralne repozytorium Maven 2, i przechowuje je w lokalnej pamięci podręcznej. Używamy maven w Selenium jako narzędzia do budowania lub zarządzania projektami. Pomaga w zarządzaniu wszystkimi zależnościami projektu i zapewnia łatwy proces budowania.
główne cele Maven są następujące:
- ułatwianie procesu kompilacji
- zapewnienie jednolitego systemu kompilacji
- zapewnienie wysokiej jakości informacji o projekcie
- Zapewnienie Wytycznych dotyczących rozwoju najlepszych praktyk
- Umożliwienie przejrzystej migracji do nowych funkcji
do tej pory nauczyliśmy się, czym jest ciągła integracja, a czym Maven. Jeśli siedzisz w swoim systemie i próbujesz zaimplementować, zacznijmy wdrażać poniższe kroki 9.
Krok 1: Otwórz Eclipse IDE, aby rozpocząć budowę projektu maven
budowa projektu Maven w Eclipse
instalacja projektu Maven w Eclipse:
Krok 2: Instalacja Mavena w Eclipse: sprawdź ten link
więc teraz mamy Mavena zainstalowanego w Eclipse. Teraz stwórzmy projekt Maven w Jenkins.
Tworzenie projektu Maven w Jenkins:
Krok 3: Utwórz nowy projekt Maven w Eclipse-wykonaj poniższe kroki
3.1 aby utworzyć projekt – kliknij prawym przyciskiem myszy na Package Explorer i przejdź przez New-Other
upewnij się, że TestNG jest już zainstalowany. Sprawdź to, aby zobaczyć „jak zainstalować TestNG w Eclipse” i to sprawdzić ten link do „TestNG kompletny Tutorial”
Wybierz projekt Maven i kliknij Dalej
zaznacz pole wyboru „Utwórz prosty projekt” i kliknij Dalejwypełnij identyfikator grupy, Artefakt Id i kliknij przycisk Zakończ
struktura projekt wygląda tak, jak pokazano na poniższym obrazku
3.2 Konfiguracja pom.plik xml, który został automatycznie utworzony, aby dołączyć inne wtyczki do procesu budowania. Można go znaleźć w korzeniu projektu Maven, jak pokazano na poniższym obrazku.
w projekcie maven używamy pliku POM, aby dodać wymagane zależności. Kliknij dwukrotnie na pom.plik xml i kliknij na pom.zakładka xml
Dodaj poniższą zależność Mavena (Selenium i TestNG), aby umożliwić mavenowi pobranie niezbędnych słoików dla Twojego projektu.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<dependencies>
<!– Selenium –>
<dependency>
<groupId > org.Selen.selen< / groupId>
<artifactId> selenium-java< / artifactId>
<wersja> 2.53.1< / wersja>
</zależność>
<!– TestNG –>
<zależność>
<groupId> org.testng< / groupId>
<artifactId> testng< / artifactId>
<wersja> 6.8< / wersja>
<zakres >test< / zakres>
</zależność>
</zależności>
|
3.3 dodanie TestNG jars do zależności umożliwi TestNG w Twoim projekcie.
Utwórz klasę TestNG i wygeneruj testng.plik xml. Sprawdź poniższy link, aby wykonać ten krok.
jak utworzyć klasę TestNG i wygenerować testng.plik xml
skopiuj poniższy kod i umieść go w swojej klasie NewTest
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
|
package tests;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
public class NewTest {
public WebDriver driver;
@Test
public void openMyBlog() {
driver.get(„https://www.softwaretestingmaterial.com/”);
}
@BeforeClass
public void Beforeclass () {
System.setProperty („webdriver.gecko.kierowca”, „D:\\Selenium\\Drivers\\geckodriver.exe”);
driver = new FirefoxDriver();
}
@AfterClass
public void afterClass () {
sterownik.Zakończ();
}
}
|
testng.xml: testng.plik xml wygląda jak poniżej. Skopiuj i umieść go w testng.xml
1
2
3
4
5
6
7
8
|
<?xml version=”1.0″ encoding=”UTF-8″?>
<suite name=”Suite” parallel=”false”>
<test name=”Test”>
<classes>
<class name=”tests.NewTest”/>
</classes>
</test> <!– Test –>
</Apartament><!– Apartament –>
|
aby uruchomić projekt za pomocą testng.xml, kliknij prawym przyciskiem myszy na ’ testng.XML ’ plik i przejdź do uruchomienia as-TestNG Suite
3.4 dodanie 'Maven-compiler-plugin’ i 'Maven-surefire-plugin’ do pom.plik xml
do uruchomienia projektu za pomocą pom.xml, musimy dodać kilka wpisów w pom.plik xml. Musimy dodać 'Maven-compiler-plugin 'i’Maven-surefire-plugin’
pom.xml
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
|
<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< / modelwersja>
<groupId> mavenPackage< / groupId>
<artifactId> MavenProject< / artifactId>
<wersja> 0.0.1-migawka< / wersja>
<zależności>
<!– Selen –>
<zależność>
<groupId> org.seleniumhq.selen< / groupId>
<artifactId> selenium-java< / artifactId>
<wersja> 2.53.1< / wersja>
</zależność>
<!– TestNG –>
<zależność>
<groupId> org.testng< / groupId>
<artifactId> testng< / artifactId>
<wersja> 6.8< / wersja>
<zakres >test< / zakres>
</zależność>
</zależności>
<buduj>
<wtyczki>
<plugin>
<groupId> org.Apacz.maven.wtyczki< / groupId>
<artifactId> maven-compiler-plugin< / artifactId>
<wersja> 3.6.1< / wersja>
<konfiguracja>
<źródło> 1.8 < / źródło>
<target> 1.8< / target>
</konfiguracja>
</plugin>
<plugin>
<groupId> org.Apacz.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
<!– <suiteXmlFile>src/main/resources/testng.xml< / suiteXmlFile> –>
</suiteXmlFiles>
</konfiguracja>
</plugin>
</wtyczki>
</buduj>
</projekt>
|
Uwaga: proces budowania zbuduje Twój projekt Maven i uruchomi TestNG bazowy.xml podczas testu Mavena. Po skonfigurowaniu Mavena i pobraniu wszystkich odpowiednich słoików, kliknij prawym przyciskiem myszy projekt i przejdź do run-Maven Clean, a następnie spróbuj zainstalować & build. Jeśli jesteś w stanie zbudować/wyczyścić / zainstalować projekty Mavena, to pomyślnie zainstalowałeś / skonfigurowałeś Mavena.
czym jest GIT
Git jest obecnie najczęściej używanym nowoczesnym systemem kontroli wersji na świecie do śledzenia zmian w dowolnym zestawie plików. Git jest projektem open source. Jego celem jest szybkość, integralność danych i obsługa rozproszonych, nieliniowych przepływów pracy. Umożliwia on zatwierdzanie pracy lokalnie, a następnie synchronizację kopii repozytorium z kopią na serwerze.
KROK 4: Zainstaluj GIT w Eclipse i dodaj (wgrywając) projekt Maven do GitHub
oto samouczek wideo na temat „Jak zainstalować GitHub w Eclipse i jak przesłać projekt do GitHub”:
proszę o cierpliwość. Film załaduje się za jakiś czas.
czym jest Jenkins
Jenkins jest serwerem automatyzacji open source. Wspiera nas w automatyzacji wszelkiego rodzaju zadań związanych z budowaniem, wdrażaniem i automatyzacją dowolnego projektu. Jest wieloplatformowy i może być używany w systemach Windows, Mac OS, Linux itp., Jako część Selenium, używamy go do ciągłego budowania i testowania naszego oprogramowania. Jest on używany do automatycznych egzekucji testowych i zaplanowanych kompilacji. Za pomocą Jenkinsa mogliśmy również publikować wyniki i wysyłać powiadomienia e-mail do wszystkich członków zespołu. Jenkins zapewnia ciągłą integrację i ciągłe dostarczanie usług dla rozwoju oprogramowania.
Oto oficjalny link do dokumentacji Jenkinsa.
do tej pory zainstalowaliśmy Mavena, stworzyliśmy projekt Mavena w Eclipse i zainstalowaliśmy GIT w Eclipse oraz wgraliśmy projekt Mavena do Githuba. Nauczyliśmy się również, czym jest Continuous Integration, Maven, GIT i Jenkins. Teraz zainstalujemy Jenkinsa i skonfigurujemy go.
instalacja Jenkinsa
krok 5: Zainstaluj Jenkinsa – sprawdź ten link
wcześniej opublikowaliśmy post na temat instalacji Jenkinsa, zobacz ten post Jak zainstalować Jenkinsa
Konfigurowanie Jenkinsa dla projektu Maven
Krok 6: Konfigurowanie Jenkinsa dla projektu Maven-sprawdź ten link
wcześniej opublikowaliśmy post na temat konfigurowania Jenkinsa dla projektu maven, zobacz ten post na temat konfigurowania Jenkinsa dla projektu maven
do tej pory zainstalowaliśmy i stworzyliśmy projekt Maven w Eclipse, zainstalowaliśmy i przesłaliśmy projekt Maven do GitHub oraz zainstalowaliśmy i skonfigurowaliśmy Jenkins dla projektu Maven. Teraz skonfigurujemy wtyczkę GIT w Jenkinsie.
Konfiguracja wtyczki GIT w Jenkins
Krok 7: Konfigurowanie wtyczki GIT w Jenkins-wykonaj poniższe kroki
7.1 Przejdź do Zarządzaj wtyczkami – > Lista filtrów wtyczek dostępnych z 'Git Plugin’.
Czytaj więcej na temat wtyczki Git
7.2 Sprawdź wtyczkę Git i kliknij przycisk „Install without restart”
na poniższym zrzucie ekranu możesz zobaczyć, że już ją zainstalowałem.
7.3 po zakończeniu instalacji uruchom ponownie Jenkinsa za pomocą polecenia w przeglądarce. http://localhost:8080/jenkins/restart
po ponownym uruchomieniu Jenkinsa, opcja Git powinna być dostępna w obszarze zarządzanie kodem źródłowym podczas konfigurowania zadania w Jenkinsie, co zobaczymy w kroku 8.
7.4 przejdź do Manage Jenkins – > Configure System, podaj właściwą ścieżkę do pliku wykonywalnego Git
krok 8: Utwórz projekt Mavena w Jenkinsie i zbuduj zadanie z projektu Git – wykonaj poniższe kroki
mamy skonfigurowaną wtyczkę GIT w Jenkinsie. Teraz stwórzmy projekt Mavena i zbudujmy zadanie z projektu Git
8.1 Kliknij na nowe elementy – > wpisz nazwę projektu (powiedzmy GitProject) – > Wybierz projekt Freestyle – > kliknij OK
zostaniesz przekierowany na stronę konfiguracji. Kliknij kartę zarządzanie kodem źródłowym
8.2 w sekcji Zarządzanie kodem źródłowym wybierz opcję „Git”. (Powinno to być widoczne po pomyślnym zainstalowaniu wtyczki Git-co zrobiliśmy w kroku 7.3).
8.3 podaj adres URL repozytorium Git (który przechwyciliśmy w kroku 4 – Obejrzyj film o tym, jak utworzyć repozytorium w Git i skopiować adres URL repozytorium Git), wybierz swoje poświadczenia i zapisz zmiany
Jenkins pobierze kod źródłowy projektu ze zdalnego serwera Git w oparciu o adres URL repozytorium, który przekazaliśmy.
8.4 W Build – kliknij na ADD build step i wybierz Invoke top-level Maven targets i przekazać „clean install” jako cele. Kliknij przycisk Zaawansowane i podaj wartość POM jako ’ pom.xml’
uwaga: pod Wtyczką Git Ustaw globalny git user.name i użytkownika.e-mail, aby dopasować globalne opcje konfiguracji
możesz również przekazać akcje po kompilacji, aby generować raporty. Aby wygenerować raporty HTML TestNG, wybierz opcję Publikuj raporty TestNG, klikając na Dodaj akcję post-build i podaj wartość jako ’ * * /testng-results.xml ’
i na koniec kliknij Zapisz.
dowiedz się, jak skonfigurować prosty projekt Mavena w Jenkinsie
struktura projektu ciągłej integracji Jenkinsa w Eclipse wygląda następująco:
uruchamianie projektu Mavena z Jenkinsa
krok 9: wykonanie projektu Mavena z Jenkinsa – wykonaj poniższe kroki
wykonajmy go teraz.
9.1 kliknij link „Zbuduj teraz”. Wywoła pom.xml.
9.2 kliknij prawym przyciskiem myszy na numer kompilacji (tutaj w moim przypadku jest to #1) i kliknij na wyjście konsoli, aby zobaczyć wynik.
na wyjściu konsoli można zobaczyć status kompilacji „sukces”.
możesz również zaplanować zadania Jenkins i wysłać powiadomienie e-mail po uruchomieniu kompilacji.
aby zaplanować zadanie Jenkins:
Otwórz zadanie Jenkins-Configure-Build triggers-zaznacz pole wyboru Build periodycznie i wprowadź wzór Zadania Cron
na przykład: aby uruchamiać zadanie co minutę, musisz wpisać * * * * *
Jenkins pracuje na wzorze Cron. Dowiedz się więcej o wzorze zadań Cron – link wiki
do wysyłania powiadomień e – mail:
przejdź do Manage Jenkins – Configure – Select Email notification-Set SMTP configuration.
otrzymasz powiadomienie e-mail, gdy budowa przejdzie lub nie powiedzie się.
podsumowanie:
ciągła Integracja Selenium z Jenkins pozwala nam uruchamiać nasze skrypty przy każdym wdrożeniu. Jenkins pozwala nam zapisywać historię wykonania i raporty. Mam nadzieję, że ten post pomógł Ci w osiągnięciu twoich celów. Mam nadzieję, że udało Ci się wdrożyć ciągłą integrację Selenium. Nie wahaj się podchodzić, jeśli masz jakiekolwiek pytania.
oto kilka wyselekcjonowanych artykułów, które możesz przeczytać dalej:
- jak uruchamiać skrypty Selenium przy użyciu BrowserStack
- dowiedz się narzędzie do testowania różnych przeglądarek
- kompletny przewodnik – narzędzie do automatyzacji GUI – Froglogic Squish
- Najpopularniejsze – Pytania kwalifikacyjne Selenium
- pytania kwalifikacyjne TestNG
- dlaczego warto wybrać testowanie oprogramowania jako karierę
- Ogólne pytania kwalifikacyjne