how use testng framework
W kilku ostatnich samouczkach rzuciliśmy światło na podstawowe i powszechnie używane polecenia WebDriver. Dowiedzieliśmy się również o strategiach lokalizowania elementów interfejsu użytkownika i ich włączaniu do skryptów testowych. Dlatego też rozwinęliśmy się bardzo pierwszy skrypt testowy WebDriver Automation .
Kontynuując ten samouczek, omówimy wszystko o TestNG, jego funkcjach i zastosowaniach.
TestNG to zaawansowana platforma zaprojektowany w taki sposób, aby wykorzystać korzyści zarówno dla programistów, jak i testerów. Dla osób już używających JUnit, TestNG nie wydawałby się inny z niektórymi zaawansowanymi funkcjami. Wraz z rozpoczęciem ram, JUnit zyskał ogromną przewagę popularność wśród aplikacji Java, programistów Java i testerów Java, ze znacznym wzrostem jakości kodu.
Zobacz też=> JUnit Tutorial i jego wykorzystanie w skryptach Selenium
Pomimo tego, że JUnit jest łatwy w użyciu i nieskomplikowany w obsłudze, ma swoje własne ograniczenia, które powodują konieczność wprowadzenia TestNG do obrazu. TestNG został stworzony przez uznanego programistę o nazwisku „Cedric Beust”. TestNG to platforma open source, która jest rozpowszechniana na licencji oprogramowania Apache i jest łatwo dostępna do pobrania.
Mówiąc o naszym wymogu wprowadzenia TestNG z WebDriver, jest to, że zapewnia on wydajny i skuteczny format wyników testów, który z kolei może być udostępniony interesariuszom, aby mieć wgląd w stan produktu / aplikacji, eliminując w ten sposób wadę niezdolności WebDriver do generowania Raporty z testów. TestNG ma wbudowany mechanizm obsługi wyjątków, który pozwala programowi działać bez nieoczekiwanego zakończenia.
Zarówno TestNG, jak i JUnit należą do tej samej rodziny struktur jednostkowych, w których TestNG jest rozszerzoną wersją JUnit i jest szeroko stosowany w obecnej erze testów.
Czego się nauczysz:
- Funkcje TestNG
- Instalacja TestNG w Eclipse
- Stworzenie przykładowego projektu TestNG
- Tworzenie klasy TestNG
- Wykonywanie skryptu TestNG
- Raporty HTML
- Ustawianie priorytetu w TestNG
- Opis kodu
- Adnotacje TestNG
- Wniosek
- rekomendowane lektury
Funkcje TestNG
- Wsparcie dla adnotacji
- Wsparcie dla parametryzacji
- Zaawansowana metodologia wykonywania, która nie wymaga tworzenia zestawów testów
- Obsługa testowania opartego na danych przy użyciu dostawców danych
- Umożliwia użytkownikowi ustawienie priorytetów wykonywania metod testowych
- Obsługuje środowisko bezpieczne dla zagrożeń podczas wykonywania wielu wątków
- Łatwo obsługuje integrację z różnymi narzędziami i wtyczkami, takimi jak narzędzia do budowania (Ant, Maven itp.), Zintegrowane Środowisko Programistyczne (Eclipse).
- Ułatwia użytkownikowi efektywne sposoby generowania raportów przy użyciu ReportNG
Istnieją różne zalety, które sprawiają, że TestNG jest lepszy od JUnit. Niektórzy z nich są:
- Zaawansowane i łatwe adnotacje
- Można ustawić wzorce wykonania
- Jednoczesne wykonywanie skryptów testowych
- Można ustawić zależności przypadków testowych
Adnotacje są poprzedzone symbolem „@” zarówno w TestNG, jak i JUnit.
A teraz zacznijmy od części instalacyjnej i wdrożeniowej.
Siatka online do automatyzacji testów Selenium
1) LambdaTest
Framework TestNG najlepiej współpracuje z chmurą Selenium Grid, taką jak LambdaTest, która pomaga przeprowadzać równoległe testy na ponad 2000 prawdziwych przeglądarek i systemach operacyjnych, bez kłopotów z utrzymaniem wewnętrznej siatki selenium.
Możesz uzyskać różne dzienniki, takie jak dzienniki poleceń, dzienniki sieciowe, surowe dzienniki Selenium, metadane itp. Wraz z pełnym nagraniem wideo skryptu testowego Selenium do debugowania.
LambdaTest oferuje również integrację z wieloma narzędziami CI / CD, takimi jak Jenkins, Travis CI, CircleCI itp. W celu ciągłego testowania. LambdaTest umożliwia również integrację z wieloma narzędziami do zarządzania projektami w celu łatwego rejestrowania błędów.
=> Odwiedź witrynę LambdaTestInstalacja TestNG w Eclipse
Wykonaj poniższe kroki, aby pobrać i zainstalować TestNG na eclipse:
Krok 1: Uruchom eclipse IDE -> Kliknij opcję Pomoc w menu -> Wybierz opcję „Eclipse Marketplace ..” w menu rozwijanym.
Krok 2: Wpisz słowo kluczowe „TestNG” w polu tekstowym wyszukiwania i kliknij przycisk „Idź”, jak pokazano poniżej.
Krok 3: Gdy tylko użytkownik kliknie przycisk „Idź”, zostaną wyświetlone wyniki pasujące do wyszukiwanego ciągu. Teraz użytkownik może kliknąć przycisk Instaluj, aby zainstalować TestNG.
Krok 4: Gdy tylko użytkownik kliknie przycisk Instaluj, zostanie wyświetlony monit o potwierdzenie instalacji. Kliknij przycisk „Potwierdź”.
Krok 5: W kolejnym kroku aplikacja wyświetli monit o zaakceptowanie licencji, a następnie kliknij przycisk „Zakończ”.
Krok 6: Instalacja jest teraz rozpoczęta, a postęp można zobaczyć w następujący sposób:
Zalecamy ponowne uruchomienie naszego zaćmienia, aby odzwierciedlić wprowadzone zmiany.
Po ponownym uruchomieniu użytkownik może zweryfikować instalację TestNG, przechodząc do „Preferencji” z opcji „Okno” na pasku menu. Zobacz poniższy rysunek dla tego samego.
(Kliknij obraz, aby wyświetlić w powiększeniu)
Stworzenie przykładowego projektu TestNG
Zacznijmy od stworzenia projektu TestNG w środowisku eclipse IDE.
Krok 1: Kliknij opcję Plik w menu -> Kliknij Nowy -> Wybierz projekt Java.
Krok 2: Wpisz nazwę projektu jako „DemoTestNG” i kliknij przycisk „Dalej”. Na koniec kliknij przycisk „Zakończ”. Twój projekt Java jest gotowy.
Krok 3: Następnym krokiem jest skonfigurowanie biblioteki TestNG w nowo utworzonym projekcie Java. W tym samym celu kliknij kartę „Biblioteki” w obszarze Konfiguruj ścieżkę budowania. Kliknij „Dodaj bibliotekę”, jak pokazano poniżej.
Krok 4: Użytkownikowi zostanie wyświetlone okno dialogowe zachęcające go / ją do wybrania biblioteki do skonfigurowania. Wybierz TestNG i kliknij przycisk „Dalej”, jak pokazano poniżej na obrazku. Na koniec kliknij przycisk „Zakończ”.
TestNG jest teraz dodawany do projektu Java, a wymagane biblioteki można zobaczyć w eksploratorze pakietów po rozwinięciu projektu.
Dodaj wszystkie pobrane biblioteki i pliki JAR Selenium do ścieżki budowania projektu, jak pokazano w poprzednim samouczku.
Tworzenie klasy TestNG
Teraz, gdy wykonaliśmy wszystkie podstawowe ustawienia, aby rozpocząć tworzenie skryptu testowego przy użyciu TestNG. Stwórzmy przykładowy skrypt za pomocą TestNG.
Krok 1: Rozwiń projekt „DemoTestNG” i przejdź do folderu „src”. Kliknij prawym przyciskiem myszy pakiet „src” i przejdź do New -> Other.
Krok 2: Rozwiń opcję TestNG i wybierz opcję klasy „TestNG” i kliknij przycisk „Dalej”.
Krok 3: Podaj wymagane szczegóły w następujący sposób. Określ folder źródłowy, nazwę pakietu i nazwę klasy TestNG, a następnie kliknij przycisk Zakończ. Jak widać na poniższym obrazku, użytkownik może również sprawdzić różne notacje TestNG, które znalazłyby odzwierciedlenie w schemacie klasy testowej. Adnotacje TestNG zostaną omówione w dalszej części tej sesji.
Wspomniana wyżej klasa TestNG zostałaby utworzona z domyślnym schematem.
Teraz, gdy stworzyliśmy podstawową podstawę dla skryptu testowego TestNG, wstrzyknijmy teraz rzeczywisty kod testowy. Używamy tego samego kodu, którego używaliśmy w poprzedniej sesji.
Scenariusz:
- Uruchom przeglądarkę i otwórz „gmail.com”.
- Sprawdź tytuł strony i wydrukuj wynik weryfikacji.
- Wprowadź nazwę użytkownika i hasło.
- Kliknij przycisk Zaloguj się.
- Zamknij przeglądarkę internetową.
Kod:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Objaśnienie kodu w odniesieniu do TestNG
1) @Test - @Test jest jednym z Adnotacje TestNG . Ta adnotacja pozwala programowi wiedzieć, że metoda z adnotacją @Test jest metodą testową. Aby móc używać różnych adnotacji TestNG, musimy zaimportować pakiet „ import org.testng.annotations. * ”.
2) Nie ma potrzeby stosowania metody main () podczas tworzenia skryptów testowych za pomocą TestNG. Realizacja programu odbywa się na podstawie adnotacji.
3) W instrukcji wykorzystaliśmy klasę Assert porównując wartość oczekiwaną i rzeczywistą. Klasa Assert służy do wykonywania różnych weryfikacji. Aby móc używać różnych twierdzeń, musimy zaimportować „ import org.testng.Assert ”.
Wykonywanie skryptu TestNG
Skrypt testowy TestNG można wykonać w następujący sposób:
=> Kliknij prawym przyciskiem myszy w dowolnym miejscu w klasie w edytorze lub w klasie java w eksploratorze pakietów, wybierz opcję „Uruchom jako” i kliknij „TestNG Test”.
Wynik TestNG jest wyświetlany w dwóch oknach:
- Okno konsoli
- Okno wyników TestNG
Zapoznaj się z poniższymi zrzutami ekranu dla okien wyników:
c ++ konwertuj char * na int
(Kliknij obraz, aby wyświetlić w powiększeniu)
Raporty HTML
TestNG oferuje dużą możliwość generowania czytelnych dla użytkownika i zrozumiałych raportów HTML dla wykonania testów. Raporty te można wyświetlać w dowolnej przeglądarce, a także za pomocą kompilacji Eclipse - z obsługą przeglądarki.
Aby wygenerować raport HTML, wykonaj poniższe czynności:
Krok 1: Wykonaj nowo utworzoną klasę TestNG. Odśwież projekt zawierający klasę TestNG, klikając go prawym przyciskiem myszy i wybierając opcję „Odśwież”.
Krok 2: Folder o nazwie „test-output” zostanie wygenerowany w projekcie na poziomie folderu „src”. Rozwiń folder „test-output” i otwórz plik „emailable-report.html” w przeglądarce Eclipse. Plik HTML wyświetla wynik ostatniego wykonania.
Krok 3: Raport HTML należy otworzyć w środowisku zaćmienia. Zobacz poniższy obraz dla tego samego.
Odśwież stronę, aby zobaczyć wyniki nowych wykonań, jeśli takie istnieją.
Ustawianie priorytetu w TestNG
Fragment kodu
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Opis kodu
Jeśli skrypt testowy składa się z więcej niż jednej metody testowej, priorytet wykonania i sekwencję można ustawić za pomocą adnotacji TestNG „@Test” i ustawiając wartość parametru „priorytet”.
W powyższym fragmencie kodu wszystkie metody są opatrzone adnotacjami help @Test, a priorytety są ustawione na 0, 1 i 2. Zatem kolejność wykonywania metod testowych jest następująca:
- Metoda 1
- Metoda 2
- Metoda 3
Obsługa adnotacji
W TestNG i JUnit dostępnych jest wiele adnotacji. Subtelna różnica polega na tym, że TestNG udostępnia JUnit bardziej zaawansowane adnotacje.
Adnotacje TestNG
Poniżej znajduje się lista najbardziej przydatnych i korzystnych adnotacji w TestNG:
Adnotacja | Opis |
---|---|
@Po zajęciach | Adnotacja powiadamia system, że metoda z adnotacją @AfterClass musi zostać wykonana po wykonaniu ostatniej metody testowej w tej samej klasie testowej |
@Test | Adnotacja powiadamia system, że metoda z adnotacją @Test jest metodą testową |
@BeforeSuite | Adnotacja powiadamia system, że metoda z adnotacją @BeforeSuite musi zostać wykonana przed wykonaniem testów w całym zestawie |
@AfterSuite | Adnotacja powiadamia system, że metoda z adnotacją @AfterSuite musi zostać wykonana po wykonaniu testów w całym zestawie |
@BeforeTest | Adnotacja powiadamia system, że metoda z adnotacją @BeforeTest musi zostać wykonana przed wykonaniem jakiejkolwiek metody testowej w tej samej klasie testowej |
@AfterTest | Adnotacja powiadamia system, że metoda z adnotacją @AfterTest musi zostać wykonana po wykonaniu dowolnej metody testowej w tej samej klasie testowej |
@Przed zajęciami | Adnotacja powiadamia system, że metoda z adnotacją @BeforeClass musi zostać wykonana przed wykonaniem pierwszej metody testowej w tej samej klasie testowej |
@BeforeMethod | Adnotacja powiadamia system, że metoda z adnotacją @BeforeMethod musi zostać wykonana przed wykonaniem dowolnej metody testowej w tej samej klasie testowej |
@AfterMethod | Adnotacja powiadamia system, że metoda z adnotacją @AfterMethod musi zostać wykonana po wykonaniu dowolnej metody testowej w tej samej klasie testowej |
@BeforeGroups | Adnotacja powiadamia system, że metoda z adnotacją @BeforeGroups jest metodą konfiguracyjną, która rejestruje grupę i którą należy wykonać przed wykonaniem pierwszej metody testowej z grupy |
@AfterGroups | Adnotacja powiadamia system, że metoda z adnotacją @AfterGroups jest metodą konfiguracyjną, która rejestruje grupę i która musi zostać wykonana po wykonaniu ostatniej metody testowej grupy |
Uwaga : Wiele z wyżej wymienionych adnotacji można również wykonać w JUnit 3 i JUnit 4 Framework.
Wniosek
W tym samouczku staraliśmy się zapoznać Cię z platformą testową opartą na Javie o nazwie TestNG. Zaczęliśmy sesję od instalacji frameworka i przeszliśmy do tworzenia skryptów i zaawansowanych tematów. Omówiliśmy wszystkie adnotacje dostarczone przez TestNG. Zaimplementowaliśmy i wykonaliśmy nasz pierwszy skrypt testowy TestNG przy użyciu adnotacji i instrukcji assert.
Podsumowanie artykułu:
- TestNG to zaawansowana platforma zaprojektowana w taki sposób, aby wykorzystać zalety zarówno programistów, jak i testerów.
- TestNG to platforma open source, która jest rozpowszechniana na licencji oprogramowania Apache i jest łatwo dostępna do pobrania.
- TestNG jest uważany za lepszy od JUnit ze względu na jego zaawansowane funkcje.
- Funkcje TestNG
- Obsługa adnotacji
- Zaawansowana metodologia wykonywania, która nie wymaga tworzenia zestawów testów
- Wsparcie dla parametryzacji
- Obsługa testowania opartego na danych przy użyciu dostawców danych
- Ustalanie priorytetów wykonywania metod testowych
- Obsługuje środowisko bezpieczne dla zagrożeń podczas wykonywania wielu wątków
- Łatwo obsługuje integrację z różnymi narzędziami i wtyczkami, takimi jak narzędzia do budowania (Ant, Maven itp.), Zintegrowane Środowisko Programistyczne (Eclipse).
- Ułatwia użytkownikowi efektywne sposoby generowania raportów przy użyciu ReportNG
- Zalety TestNG nad JUnit
- Dodano zaawansowane i łatwe adnotacje
- Można ustawić wzorce wykonania
- Jednoczesne wykonywanie skryptów testowych
- Można ustawić zależności przypadków testowych
- TestNG jest dostępny bezpłatnie i można go łatwo zainstalować w środowisku Eclipse IDE za pomocą Eclipse Market.
- Po instalacji TestNG byłby dostępny jako biblioteka w środowisku Eclipse.
- Utwórz nowy projekt Java i skonfiguruj ścieżkę kompilacji przy użyciu biblioteki TestNG.
- Utwórz nową klasę TestNG, rozwijając utworzony projekt TestNG i przechodząc do jego folderu „src”. Kliknij prawym przyciskiem myszy pakiet „src” i przejdź do New -> Other. Wybierz opcję klasy TestNG.
- @Test to jedna z adnotacji dostarczonych przez TestNG. Ta adnotacja pozwala programowi wiedzieć, że metoda z adnotacją @Test jest metodą testową. Aby móc używać różnych adnotacji TestNG, musimy zaimportować pakiet „ import org.testng.annotations. * ”.
- Nie ma potrzeby stosowania metody main () podczas tworzenia skryptów testowych za pomocą TestNG.
- Do porównania wartości oczekiwanej i rzeczywistej używamy klasy Assert. Klasa Assert służy do wykonywania różnych weryfikacji. Aby móc używać różnych twierdzeń, musimy zaimportować „ import org.testng.Assert ”.
- Jeśli skrypt testowy składa się z więcej niż jednej metody testowej, priorytet wykonania i kolejność można ustawić za pomocą adnotacji TestNG „@Test” i ustawiając wartość parametru „priorytet”.
- TestNG ma możliwość automatycznego generowania raportów z wykonania testów czytelnych dla człowieka. Raporty te można wyświetlać w dowolnej przeglądarce, a także przy użyciu wbudowanej obsługi przeglądarki Eclipse.
Następny samouczek nr 13 : Idąc naprzód z nadchodzącymi samouczkami z serii Selenium, skupimy się na obsłudze różnych typów elementów internetowych dostępnych na stronach internetowych. W związku z tym, w następnym samouczku skupimy się na „menu rozwijanych” i przećwiczymy ich strategie obsługi. Omówilibyśmy również klasę Select WebDriver i jej metody do wybierania wartości z list rozwijanych.
Uwaga dla czytelników : Podczas gdy nasz następny samouczek z serii Selenium jest w trybie przetwarzania, czytelnicy mogą rozpocząć tworzenie własnych podstawowych skryptów WebDriver przy użyciu frameworka TestNG.
Aby uzyskać bardziej zaawansowane skrypty i koncepcje, uwzględnij jak najwięcej adnotacji i asercji w swoich klasach TestNG i wykonaj je przy użyciu środowiska TestNG. Przeanalizuj również raporty HTML wygenerowane przez TestNG.
rekomendowane lektury
- Jak używać Firebuga do tworzenia skryptów selenium - samouczek Selenium # 4
- Wprowadzenie do JUnit Framework i jego wykorzystanie w skrypcie Selenium - Samouczek Selenium # 11
- Dowiedz się, jak używać adnotacji TestNG w selenie (z przykładami)
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- Jak zlokalizować elementy w przeglądarkach Chrome i IE do tworzenia skryptów selenium - Samouczek Selenium # 7
- Tworzenie Selenium Framework i dostęp do danych testowych z Excela - samouczek Selenium # 21
- Tworzenie typów generycznych i zestawów testowych - samouczek Selenium # 22
- Dogłębne samouczki dotyczące Eclipse dla początkujących