Selen - TestNG
TestNG to potężna platforma testowa, ulepszona wersja JUnit, która była używana przez długi czas, zanim powstał TestNG. NG oznacza „następną generację”.
Framework TestNG zapewnia następujące funkcje -
- Adnotacje ułatwiają nam organizowanie testów.
- Elastyczna konfiguracja testów.
- Przypadki testowe można łatwiej grupować.
- Zrównoleglenie testów można osiągnąć za pomocą TestNG.
- Wsparcie dla testów opartych na danych.
- Wbudowane raportowanie.
Instalowanie TestNG dla Eclipse
Step 1 - Uruchom Eclipse i wybierz „Zainstaluj nowe oprogramowanie”.
Step 2 - Wpisz adres URL jako „http://beust.com/eclipse” i kliknij „Dodaj”.
Step 3- Otworzy się okno dialogowe „Dodaj repozytorium”. Wpisz nazwę jako „TestNG” i kliknij „OK”
Step 4 - Kliknij „Zaznacz wszystko”, aby wybrać „TestNG”, jak pokazano na rysunku.
Step 5 - Kliknij „Dalej”, aby kontynuować.
Step 6 - Przejrzyj wybrane pozycje i kliknij „Dalej”.
Step 7 - „Zaakceptuj umowę licencyjną” i kliknij „Zakończ”.
Step 8 - TestNG rozpocznie instalację, a postęp będzie pokazany w następujący sposób.
Step 9- Pojawia się ostrzeżenie o zabezpieczeniach, ponieważ nie można ustalić ważności oprogramowania. Kliknij OK'.
Step 10- Instalator wyświetla monit o ponowne uruchomienie Eclipse, aby zmiany odniosły skutek. Kliknij „Tak”.
Adnotacje w TestNG
Adnotacje zostały formalnie dodane do języka Java w JDK 5 i TestNG zdecydował się użyć adnotacji do adnotacji klas testowych. Poniżej przedstawiono niektóre zalety korzystania z adnotacji. Więcej o TestNG można znaleźćhere
TestNG identyfikuje metody, którymi jest zainteresowany, wyszukując adnotacje. Dlatego nazwy metod nie są ograniczone do żadnego wzorca ani formatu.
Do adnotacji możemy przekazać dodatkowe parametry.
Adnotacje są silnie wpisane, więc kompilator od razu oznaczy wszelkie błędy.
Klasy testowe nie muszą już niczego rozszerzać (na przykład TestCase, dla JUnit 3).
Sr.No. | Adnotacja i opis |
---|---|
1 | @BeforeSuite Metoda z adnotacjami zostanie uruchomiona tylko raz przed uruchomieniem wszystkich testów w tym pakiecie. |
2 | @AfterSuite Metoda z adnotacjami zostanie uruchomiona tylko raz po wykonaniu wszystkich testów w tym pakiecie. |
3 | @BeforeClass Metoda z adnotacjami zostanie uruchomiona tylko raz przed wywołaniem pierwszej metody testowej w bieżącej klasie. |
4 | @AfterClass Metoda z adnotacjami zostanie uruchomiona tylko raz po uruchomieniu wszystkich metod testowych w bieżącej klasie. |
5 | @BeforeTest Metoda z adnotacjami zostanie uruchomiona przed uruchomieniem jakiejkolwiek metody testowej należącej do klas wewnątrz tagu <test>. |
6 | @AfterTest Metoda z adnotacjami zostanie uruchomiona po uruchomieniu wszystkich metod testowych należących do klas wewnątrz tagu <test>. |
7 | @BeforeGroups Lista grup, dla których ta metoda konfiguracji będzie działać wcześniej. Ta metoda jest gwarantowana na krótko przed wywołaniem pierwszej metody testowej należącej do którejkolwiek z tych grup. |
8 | @AfterGroups Lista grup, po których będzie działać ta metoda konfiguracji. Ta metoda zostanie uruchomiona wkrótce po wywołaniu ostatniej metody testowej należącej do którejkolwiek z tych grup. |
9 | @BeforeMethod Opisana metoda zostanie uruchomiona przed każdą metodą testową. |
10 | @AfterMethod Opisana metoda zostanie uruchomiona po każdej metodzie testowej. |
11 | @DataProvider Oznacza metodę jako dostarczającą dane dla metody testowej. Metoda z adnotacjami musi zwracać Object [] [], w którym do każdego obiektu [] można przypisać listę parametrów metody testowej. Metoda @Test, która chce odbierać dane od tego dostawcy danych, musi używać nazwy dostawcy danych równej nazwie tej adnotacji. |
12 | @Factory Oznacza metodę jako fabrykę, która zwraca obiekty, które będą używane przez TestNG jako klasy Test. Metoda musi zwracać Object []. |
13 | @Listeners Definiuje słuchaczy w klasie testowej. |
14 | @Parameters Opisuje sposób przekazywania parametrów do metody @Test. |
15 | @Test Oznacza klasę lub metodę jako część testu. |
Konfiguracja TestNG-Eclipse
Step 1 - Uruchom Eclipse i utwórz „Nowy projekt Java”, jak pokazano poniżej.
Step 2 - Wpisz nazwę projektu i kliknij „Dalej”.
Step 3 - Przejdź do zakładki „Biblioteki” i dodaj plik JAR serwera zdalnego sterowania Selenium, klikając „Dodaj zewnętrzne pliki JAR”, jak pokazano poniżej.
Step 4- Dodany plik JAR jest pokazany tutaj. Kliknij „Dodaj bibliotekę”.
Step 5- Otworzy się okno dialogowe „Dodaj bibliotekę”. Wybierz „TestNG” i kliknij „Dalej” w oknie dialogowym „Dodaj bibliotekę”.
Step 6 - Dodana biblioteka „TestNG” zostaje dodana i jest wyświetlana, jak pokazano poniżej.
Step 7 - Po utworzeniu projektu struktura projektu wyglądałaby tak, jak pokazano poniżej.
Step 8 - Kliknij prawym przyciskiem folder „src” i wybierz Nowy >> Inne.
Step 9 - Wybierz „TestNG” i kliknij „Dalej”.
Step 10 - Wybierz nazwę „folderu źródłowego” i kliknij „OK”.
Step 11 - Wybierz „Nazwę pakietu”, „nazwę klasy” i kliknij „Zakończ”.
Step 12 - Zostanie wyświetlony eksplorator pakietów i utworzona klasa.
Pierwszy test w TestNG
Teraz zacznijmy pisać skrypty za pomocą TestNG. Skorzystajmy z tego samego przykładu, którego użyliśmy do zrozumienia WebDriver. Skorzystamy z aplikacji demonstracyjnej www.calculator.net i wykonamy kalkulator procentowy.
W poniższym teście zauważysz, że NIE ma głównej metody, ponieważ testNG będzie sterować przepływem wykonywania programu. Po zainicjowaniu sterownika wykona metodę „@BeforeTest”, po której nastąpi „@Test”, a następnie „@AfterTest”. Należy pamiętać, że w klasie może istnieć dowolna liczba adnotacji „@Test”, ale „@BeforeTest” i „@AfterTest” mogą pojawić się tylko raz.
package TestNG;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class TestNGClass {
WebDriver driver = new FirefoxDriver();
@BeforeTest
public void launchapp() {
// Puts an Implicit wait, Will wait for 10 seconds before throwing exception
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Launch website
driver.navigate().to("http://www.calculator.net");
driver.manage().window().maximize();
}
@Test
public void calculatepercent() {
// Click on Math Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
// Click on Percent Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();
// Enter value 10 in the first number of the percent Calculator
driver.findElement(By.id("cpar1")).sendKeys("10");
// Enter value 50 in the second number of the percent Calculator
driver.findElement(By.id("cpar2")).sendKeys("50");
// Click Calculate Button
driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
// Get the Result Text based on its xpath
String result =
driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
// Print a Log In message to the screen
System.out.println(" The Result is " + result);
if(result.equals("5")) {
System.out.println(" The Result is Pass");
} else {
System.out.println(" The Result is Fail");
}
}
@AfterTest
public void terminatetest() {
driver.close();
}
}
Wykonanie
Aby wykonać, kliknij prawym przyciskiem myszy utworzony plik XML i wybierz „Uruchom jako” >> „TestNG Suite”
Analiza wyników
Dane wyjściowe są przesyłane do konsoli i wyglądają tak, jak pokazano poniżej. Dane wyjściowe konsoli zawierają również podsumowanie wykonania.
Wynik TestNG można również zobaczyć na innej karcie. Kliknij przycisk „Widok raportu HTML”, jak pokazano poniżej.
Wynik HTML zostanie wyświetlony, jak pokazano poniżej.