Grupy TestNG: Uwzględnij, Wyklucz na przykładzie - samouczek Selenium

Spisie treści:

Anonim

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 definiuje początek grup w XML.

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 , i

  • 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.

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 wykluczania  Tag 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:

  1. Uruchom http://www.demo.guru99.com
  2. Wpisz swój identyfikator e-mail w polu.
  3. 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;

  1. Chcemy uruchamiać wszystkie przypadki testowe niezależnie od nazwy grupy. W takim przypadku usuniemy tag grupy z uruchamiania XML.
  1. 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.
  1. 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.
  1. 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.