Metodologia testowania aplikacji
Transkrypt
Metodologia testowania aplikacji
Metodologia testowania aplikacji ćwiczenia 6 Testing Next Generation TestNG - framework wspomagający testowanie jednostkowe, integracyjne oraz funkcjonalne. Stworzony jako alternatywa do JUnit. Biblioteka została napisana przez Cedrica Beusta sfrustrowanego działaniem JUnit, który zdecydował napisać własne lepsze narzędzie zarządzania testami. TestNG Cechy: ● ● ● ● Dostępny w formie darmowej biblioteki Dla osób początkujących oraz doświadczonych testerów Łatwe zarządzanie testami Duże możliwości konfiguracji testów ❖ grupowanie testów ❖ zapewnienie danych dla testów ❖ definiowanie zależności pomiędzy testami ❖ i wiele innych... TestNG - instalacja Jako plug-in do Eclipsa: Menu Help -> Install New Software -> ADD TestNG - pierwsze kroki... 1. 2. 3. Tworzymy nowy projekt: File -> New -> Java Project W nowym projekcie tworzymy nowy pakiet np. testy z m.kontekstowego na projekcie wybieramy New -> package W lewym panelu powinniśmy zobaczyć nasz nowy pakiet: TestNG - pierwsze kroki... 4. 5. Aby dodać nową klasę TestNG zaznaczamy nowo dodany pakiet i z menu kontekstowego wybieramy: TestNG -> Create TestNG class Zaznaczamy opcje jak na zrzucie i wybieramy Finish TestNG - Przykład 1 package testy; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeTest; import org.testng.annotations.AfterTest; public class NewTest { @Test public void f() { } @BeforeMethod public void beforeMethod() { } @AfterMethod public void afterMethod() { } TestNG - Przykład 1 @BeforeClass public void beforeClass() { } @AfterClass public void afterClass() { } @BeforeTest public void beforeTest() { } @AfterTest public void afterTest() { } } Dodany został przykładowy szkielet testu z jedną metodą testową f(). Następnie uzupełnimy każdą z metod aby zobaczyć co przyniesie uruchomienie powyższego kodu. Po uruchomieniu testu otrzymamy: widok Results TestNG TestNG - Przykład 2 @Test (priority = 2) public void TestCase1() { System.out.println("TestCase 1"); } @Test (enabled = false) public void TestCase2() { System.out.println("TestCase 2"); } @Test (priority = 1) public void TestCase3() { System.out.println("TestCase 3"); } TestNG - Przykład 3 @Test public void test1() throws Exception { throw new Exception("Operacja nie powiodla sie!"); } @Test(dependsOnMethods = { "test1" }) public void test2() { System.out.println("Test numer 2!"); } @Test(dependsOnMethods = { "test2" }) public void test3() { System.out.println("Test numer 3!"); } @Test public void test4() { System.out.println("Test numer 4!"); } TestNG + Selenium WebDriver TestNG - Przykład 4.1 TestNG - Przykład 4.2 TestNG - Przykład 4.2 W celu korzystania z grup testów podczas dodawania nowej klasy TestNG dodatkowo określamy nazwę pliku XML który będzie później odniesieniem do naszych testów. Zawartość pliku .xml (do przykładu 4.2) <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="TestSuite" verbose="1" > <test name="materialy" > <groups> <run> <include name="uczelnia" /> bng </run> </groups> <classes> <class name="webdriver1" /> </classes> </test> <test name="kontakt"> <groups> <run> <include name="kontakt" /> </run> </groups> <classes> <class name="webdriver1"/> </classes> </test> </suite> W celu uruchomienia danej konfiguracji z poziomu Eclipse klikamy prawym przyciskiem myszy na dany plik .xml oraz wybieramy Run As TestNG Suite TestNG - Przykład 5 TestNG - krótkie podsumowanie @BeforeClass @BefoteMethod @BeforeTest @AfterTest @AfterMethod @AfterClass @BeforeSuite @AfterSuite @Test ● enabled (true/false) - czy wykonujemy test czy nie ? ● priority = 2 - priorytet testu (najwyższy = 0) ● dependsOnMethods = metoda - zależy od powodzenia metody “metoda” ● groups - grupa do której należy test @DataProvider (nazwa) - źródło pochodzenia danych wykorzystanych w teście W ramach pracy domowej proszę o napisanie przynajmniej jednego testu opartego o TestNG. Wykorzystać przynajmniej kilka parametrów nadawanych dla notacji @Test. Mile widziane przykłady z wykorzystaniem @DataProvider. Proszę o wysyłanie rozwiązania w pliku tekstowym. adres na który można przesyłać zadania: [email protected]