TestNG to platforma testowa, która obejmuje różne typy projektów testów, takich jak testy jednostkowe, funkcjonalne, kompleksowe, interfejs użytkownika i testy integracyjne.
Możesz uruchomić pojedynczy lub wiele pakietów (pakiet oznacza tutaj hermetyzację grupy klas w odpowiednim formacie reżysera), tworząc XML i uruchamiając go przez maven.
W tym samouczku nauczysz się:
- Grupy TestNG z przykładem
- Ustaw ścieżkę Maven i Java w zmiennej środowiskowej (dla użytkownika systemu Windows)
- Wprowadzenie do XML i jak tworzyć pliki XML
- Innym mechanizmem zamiast grupowania jest „wykluczanie” lub „dołączanie” w testowym XML-u
- Jak uruchomić kod za pomocą pliku XML (demonstracja wideo)
Grupy TestNG z przykładem
Używamy grup w Testng, gdy:
- Nie chcemy osobno definiować metod testowych w różnych klasach (w zależności od funkcjonalności) i
- Jednocześnie chcą zignorować (nie wykonywać) niektóre przypadki testowe, tak jakby nie istniały w kodzie.
- Aby to zrobić, musimy je pogrupować. Odbywa się to za pomocą mechanizmów „włączanie” i „wykluczanie” obsługiwanych w testNG.
W poniższym przykładzie pokazaliśmy składnię sposobu używania grup w pliku XML.
@Test (groups = {"bonding", "strong_ties"})
Tutaj używamy 2 nazw grup, tj. „Wiązanie” i „silne_typy” (są to nazwy logiczne, które można zmienić zgodnie z życzeniem).
Znacznik
Dostosuj swój XML, aby wybrać wspomnianą grupę z klas testowych. Poniżej wymieniono składnię deklaracji grup w pliku XML np
Załóżmy więc, że w klasie jest 10 metod testowych.
Z nich,
- 6 metod jest oznaczonych w grupie „wiązanie” i
- 4 są w grupie „strong_ties”
Idąc dalej, ustawimy ścieżkę maven / Java i użyjemy środowiska Eclipse IDE do zademonstrowania użycia grup przy użyciu plików XML w projekcie maven opartym na Javie.
Ustaw ścieżkę Maven i Java w zmiennej środowiskowej (dla użytkownika systemu Windows)
Zapoznaj się z https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Wprowadzenie do XML i jak tworzyć pliki XML
- Plik XML (Extensible Markup Language) we frameworku Maven zawiera informacje z co najmniej jednego testu i jest zdefiniowany przez tag
. - Informacje testowe w formacie XML są reprezentowane przez znacznik
i mogą zawierać jedną lub więcej klas TestNG. - Klasa Java, która zawiera adnotację @Test powyżej metod testowych, jest zdefiniowana jako metody TestNG.
Wiele tagów jest używanych w sekwencji do tworzenia działającego pliku XML testNG, takiego jak
- Pierwszy to tag
, który przechowuje logiczną nazwę, która definiuje pełne informacje do testNG raportowane w celu wygenerowania raportu wykonania. - Drugi to
, zauważ, że jest to nazwa logiczna, która zawiera informacje z raportu wykonania testu, takie jak zaliczenie, niepowodzenie, pominięcie przypadków testowych i inne informacje, takie jak całkowity czas wykonania i informacje o grupie - Trzeci to
, com.group.guru99 to używany pakiet, a nazwa klasy testowej to TC_Class1.
xml version = "1.0" encoding = "UTF-8"?>
Będziemy używać tego XML do przyszłych wad wideo.
Innym mechanizmem zamiast grupowania jest „wykluczanie” lub „dołączanie” w testowym XML-u
Załóżmy, że znajdujesz zastosowanie złożonego mechanizmu grupowego, a następnie testNG XML ułatwi funkcjonalność wykluczania / dołączania testu.
Tag wykluczania : składnia tagu wykluczaniaTag uwzględnienia : składnia tagu dołączania
Uwaga: możemy jednocześnie dołączyć / wykluczyć wiele przypadków testowych i działa to również z grupami.
Jak uruchomić kod za pomocą pliku XML (demonstracja wideo)
Wyjaśnienie kodu Java i XML z grupą, wyklucz i dołącz znacznik w XML.
- Scenariusz : Uruchom witrynę demonstracyjną bankowości Guru99, zweryfikuj kilka rzeczy na stronie logowania, a następnie wprowadź dane uwierzytelniające i ponownie zweryfikuj kilka nowych rzeczy w aplikacji po zalogowaniu.
Uwaga : Każdy krok, który kodujesz, powinien być zadeklarowany w oddzielnych metodach, ale po wykonaniu spowoduje wykonanie metod testowych w zależności od wpisów w pliku XML.
Metoda 1 : Zainicjuj przeglądarkę i uruchom adres URL (tc01LaunchURL ())
Metoda 2 : Sprawdź nagłówek strony logowania (tc02VerifyLaunchPage ())
Metoda 3 : Wprowadź nazwę użytkownika i hasło w formularzu logowania (tc03EnterCredentials ())
Metoda 4 : Sprawdź obecność identyfikatora menedżera na pulpicie nawigacyjnym użytkownika (tc04VerifyLoggedInPage ())
Metoda 5 : Zweryfikuj kilka dodatkowych linków na tablicy User DashBoard (tc05VerifyHyperlinks ())
Kod dla naszego scenariusza:
pakiet com.group.guru99;import java.util.concurrent.TimeUnit;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;public class TC_Class1 {public static final WebDriver webDriver = nowy FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Bank Guru99']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [zawiera (text (), 'Id menadżera')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Ten przypadek testowy zainicjuje webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). maximize ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get („http://www.demo.guru99.com/V4/”);}/ *** Sprawdza obecność nagłówka na stronie logowania* /@Test (groups = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),„Nagłówek strony głównej nie jest wyświetlany”);System.out.println ("Wyświetlany jest nagłówek strony głównej");}/ *** Ten przypadek testowy wprowadzi nazwę użytkownika, hasło, a następnie kliknie* przycisk logowania* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (Według.xpath (element_nazwy_użytkownika)). sendKeys (wartość_nazwy_użytkownika);webDriver.findElement (By.xpath (element_hasła)). sendKeys (wartość_hasła);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Ten przypadek testowy zweryfikuje obecność identyfikatora menedżera na DashBoard* /@Test (groups = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),„Etykieta identyfikacyjna menedżera nie jest wyświetlana”);System.out.println ("Wyświetlana jest etykieta Manger Id");}/ *** Ten przypadek testowy sprawdzi obecność linku Nowy klient* I łącze FundTransfer w lewym panelu* /@Test (groups = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),„Hiperłącze nowego klienta nie jest wyświetlane”);System.out.println ("Wyświetlane jest hiperłącze nowego klienta");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),„Hiperłącze do transferu środków nie jest wyświetlane”);System.out.println ("Wyświetlane jest hiperłącze do transferu środków");}}
Uwaga: poświadczenia są ważne tylko przez 20 dni, więc jeśli próbujesz uruchomić kod na komputerze lokalnym, możesz napotkać błąd nieprawidłowych poświadczeń. Poniżej przedstawiono kroki, aby wygenerować dane logowania:
- Uruchom http://www.demo.guru99.com
- Wpisz swój identyfikator e-mail w polu.
- Kliknij Enter i zobacz swoje dane logowania na ekranie.
Wyjaśnienie kodu:
Jak wspomniano powyżej, stworzyliśmy 5 przypadków testowych do wykonywania każdej akcji w niezależnych metodach.
Możesz zauważyć, że do każdej metody przypisaliśmy parametr grupowy, który ma w sobie jakąś wartość.
Zasadniczo są to nazwy grup różnicujących, tj. „Silne_tyki” i „wiązanie”.
- Pierwsza i trzecia metoda są oznaczone jako „bonding”, „strong_ties”, co oznacza, że jeśli XML zostanie zaktualizowany w którejkolwiek grupie, ten przypadek testowy zostanie uruchomiony.
- Druga metoda jest oznaczona tylko jako grupa „bonding”, co oznacza, że jeśli XML jest aktualizowany za pomocą grupy bonding. Tylko w takim przypadku ten przypadek testowy zostanie uruchomiony.
- Czwarty przypadek testowy jest oznaczony jako grupa strong_ties, co oznacza, że ten przypadek testowy zostanie uruchomiony tylko wtedy, gdy plik XML zostanie zaktualizowany o nazwę grupy strong_ties.
- Ostatni, ale nie ostatni, piąty przypadek testowy jest dołączony do grupy wiązania, co oznacza, że ten przypadek testowy zostanie uruchomiony tylko wtedy, gdy plik XML zostanie zaktualizowany o nazwę grupy wiązania.
Więc ogólnie mamy 4 scenariusze;
- Chcemy uruchamiać wszystkie przypadki testowe niezależnie od nazwy grupy. W takim przypadku usuniemy tag grupy z uruchamiania XML.
- Chcemy uruchomić kilka testów przypadków testowych, które są związane tylko z jedną z grup, tj. Silnymi_zasadami lub wiązaniami
- Proszę odnieś się:
- W tym filmie parametr Group jest komentowany na podstawie uruchamiania XML. W związku z tym zobaczysz, że wszystkie przypadki testowe zostały wykonane.
- Kontynuując wideo, teraz zawarliśmy nazwę grupy w XML, możesz zobaczyć tylko przypadki testowe specyficzne dla tej grupy, które są tylko uruchomione.
- Używamy mechanizmu wykluczania, aby wykluczyć przypadek testowy:
- Proszę odnieś się
- Widzisz, że użyliśmy wykluczenia kilku przypadków testowych (tc02), wpisując ich nazwę w uruchomionym XML-u. Ostatecznie wspomniane przypadki testowe nie zostały uruchomione.
- Na koniec używamy mechanizmu dołączania testów, aby uwzględnić przypadki testowe (tc01LaunchURL, tc03EnterCredentials i tc05VerifyHyperlinks)
- Proszę odnieś się
- W tym filmie zobaczysz, że przypadki testowe, o których mowa w XML, działają tylko podczas wykonywania testu.
Proszę pobrać kod ze wspomnianego adresu URL, będzie on zawierał wszystkie typy testXML:
Pobierz powyższy kod
Wniosek
Dowiedzieliśmy się tutaj stosunkowo nowego sposobu uruchamiania przypadków testowych przy użyciu XML w projekcie Maven.
Zaczęliśmy od krótkiego wprowadzenia na temat testNG i kontynuowaliśmy z pełną specyfikacją techniczną grup, wykluczaj i dołączaj.