guide generate extent reports selenium webdriver
Jak generować raporty zakresu w Selenium WebDriver:
Selenium zapewnia wbudowane raporty przy użyciu frameworków, takich jak JUnit i TestNG.
Chociaż wbudowane raporty dostarczają informacji o krokach wykonywanych w ramach przypadku testowego, wymagają większego dostosowania, aby można było je udostępnić wszystkim głównym interesariuszom projektu.
Extent Reports to konfigurowalny raport HTML opracowany przez Anshoo Arora, który można zintegrować z Selenium WebDriver przy użyciu frameworków JUnit i TestNG.
Ten samouczek zawiera kompletny przewodnik krok po kroku dotyczący generowania raportów rozszerzonych w Selenium WebDrive z przykładowymi kodami.
Poniżej znajduje się migawka wbudowanego raportu dostarczonego przez platformę TestNG:
Rozszerzone raporty oferują kilka zalet w porównaniu z wbudowanymi raportami, które są generowane przez JUnit i TestNG, takich jak reprezentacja wykresu kołowego, generowanie raportów krokowych testów, dodawanie zrzutów ekranu itp. Na każdym etapie testu oraz prezentowalny interfejs użytkownika, który można udostępniać wszystkich interesariuszy projektu.
Poniżej znajduje się migawka przykładowego raportu z zakresu w postaci wykresu kołowego
(Uwaga:Kliknij dowolny obraz, aby uzyskać powiększony widok)
Czego się nauczysz:
- Zalety korzystania z raportów zakresu
- Korzystanie z raportów rozszerzonych w Selenium Webdriver
- Przykładowy kod dla raportów zakresu
- Raport podsumowujący test
- Raport graficzny wykresu kołowego
- Przechwyć zrzut ekranu w raportach zakresu
- Wniosek
- rekomendowane lektury
Zalety korzystania z raportów zakresu
Istnieje kilka zalet raportów rozszerzonych, a kilka z nich omówiono poniżej.
- Konfigurowalny raport HTML z reprezentacją wykresów krokowych i kołowych.
- Wyświetla czas potrzebny na wykonanie przypadku testowego w raporcie.
- Każdy etap testu może być powiązany ze zrzutem ekranu.
- Można łatwo śledzić wiele przypadków testowych w ramach jednego pakietu.
- Można go łatwo zintegrować z frameworkami TestNG i JUnit.
Korzystanie z raportów rozszerzonych w Selenium Webdriver
Raporty zakresu zawierają dwie główne klasy, które są często używane.
- ExtentReports, klasa
- Klasa ExtentTest
Składnia:
ExtentReports reports = new ExtentReports („Ścieżka katalogu do przechowywania wynikowego pliku HTML”, prawda / fałsz);
jak testować cross-site scripting
ExtentTest test = reports.startTest („TestName”);
Klasa Extent Reports służy do generowania raportu HTML na ścieżce określonej przez użytkownika. Flaga Boolean wskazuje, czy istniejący raport wymaga zastąpienia, czy też należy utworzyć nowy raport. Wartość „prawda” jest wartością domyślną, co oznacza, że wszystkie istniejące dane zostaną nadpisane.
Klasa Extent Test służy do rejestrowania kroków testu w wygenerowanym raporcie HTML.
Powyższych klas można używać z często używanymi metodami wbudowanymi, które opisano poniżej.
- startTest
- endTest
- Log
- spłukać
Metody startTest i endTest są używane do wykonywania warunków wstępnych i warunków końcowych przypadku testowego, natomiast metoda log służy do rejestrowania stanu każdego kroku testu w wynikowym raporcie HTML. Metoda Flush służy do usuwania wszelkich poprzednich danych z raportu i tworzenia nowego raportu.
Stan testu może mieć dowolną z następujących wartości:
- PRZECHODZIĆ
- ZAWIEŚĆ
- POMINĄĆ
- INFO
Składnia:
reports.endTest ();
test.log (LogStatus.PASS, „Test zaliczony”);
test.log (LogStatus.FAIL, „Test Failed”);
test.log (LogStatus.SKIP, „Test Skipped”);
test.log (LogStatus.INFO, „Informacje o testach”);
Metoda dziennika przyjmuje dwa parametry, pierwszy parametr to stan testu, a drugi parametr to komunikat, który ma zostać wydrukowany w raporcie wynikowym.
Przykładowy kod dla raportów zakresu
Poniżej wymieniono sekwencję kroków, aby użyć raportów rozszerzonych w Selenium Webdriver w Junit.
Krok 1:
Extent Reports może być bezpośrednio używany w Selenium WebDriver, importując plik JAR - Extentreports-java-2.41.2.jar, który można pobrać tutaj .
dobry downloader muzyki mp3 dla Androida
Po pobraniu pliku ZIP wyodrębnij zawartość pliku ZIP do folderu.
Krok 2:
Dodaj pliki jar obecne w pliku ZIP do ścieżki budowania projektu przy użyciu opcji Ścieżka budowania -> Konfiguruj ścieżkę budowania.
Krok 3:
Utwórz nową klasę JAVA z poniższym kodem dla raportów rozszerzonych.
package com.objectrepository.demo; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import com.relevantcodes.extentreports.ExtentReports; import com.relevantcodes.extentreports.ExtentTest; import com.relevantcodes.extentreports.LogStatus; public class ExtentDemo { static ExtentTest test; static ExtentReports report; @BeforeClass public static void startTest() { report = new ExtentReports(System.getProperty('user.dir')+'\ExtentReportResults.html'); test = report.startTest('ExtentDemo'); } @Test public void extentReportsDemo() { System.setProperty('webdriver.chrome.driver', 'D:\SubmittalExchange_TFS\QA\Automationrdparty\chrome\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.get('https://www.google.co.in'); if(driver.getTitle().equals('Google')) { test.log(LogStatus.PASS, 'Navigated to the specified URL'); } else { test.log(LogStatus.FAIL, 'Test Failed'); } } @AfterClass public static void endTest() { report.endTest(test); report.flush(); } }
Objaśnienie kodu
@Przed zajęciami:
Powyższy kod demonstruje użycie raportów zakresu. Wykonanie przypadku testowego rozpoczyna się od metody startTest, która obejmuje inicjalizację obiektu Extent Reports. Parametr przekazywany do obiektu Extent Reports może być dowolną poprawną ścieżką zdefiniowaną przez użytkownika.
Ze względu na prostotę przykład używa bieżącego katalogu projektu do wygenerowania wynikowego raportu HTML. Następna instrukcja wymaga zainicjowania obiektu ExtentTest zwracaną wartością metody startTest.
@Test:
Klasa testowa obejmuje następujące kroki:
- Otwórz przeglądarkę Chrome pod tym adresem URL https://www.google.com
- Sprawdź poprawność tytułu strony z oczekiwaną wartością po otwarciu strony.
- Zarejestruj stan przypadku testowego jako PASS / FAIL, korzystając z metody dziennika Extent Reports.
@Po zajęciach:
Klasa After zawiera kod do wykonania warunków końcowych przypadku testowego, takich jak zakończenie testu przy użyciu metody endTest i opróżnienie raportu. Należy pamiętać, że raport nie zostanie wygenerowany, jeśli metoda flush () nie zostanie użyta.
T jest raportem podsumowującym
jaki jest najlepszy kompilator C ++
Raport graficzny wykresu kołowego
Przechwyć zrzut ekranu w raportach zakresu
Zrzut ekranu wraz z wykonaniem testu pomoże testerowi w debugowaniu skryptu testowego, jeśli wystąpią jakiekolwiek problemy podczas wykonywania testu. Jednak wskazane jest, aby zrzut ekranu tylko w przypadku niepowodzenia etapu testowego, ponieważ obrazy będą zajmować więcej pamięci, jeśli zostaną przechwycone na każdym etapie testu.
Zrzuty ekranu można wykonać dla każdego nieudanego kroku przy użyciu poniższego kodu.
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ 'Test Failed'); public static String capture(WebDriver driver) throws IOException { File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); File Dest = new File('src/../ErrImages/' + System.currentTimeMillis() + '.png'); String errflpath = Dest.getAbsolutePath(); FileUtils.copyFile(scrFile, Dest); return errflpath; }
Objaśnienie kodu
Metoda przechwytywania:
# 1) Metoda getScreenShotAs () służy do przechwytywania zrzutu ekranu bieżącej instancji WebDriver i przechowywania go w różnych formach wyjściowych.
File scrFile = ((TakesScreenshot) sterownik) .getScreenshotAs (OutputType.FILE);
#dwa) Metoda getScreenShotAs zwraca obiekt pliku, który musi zostać zapisany w zmiennej pliku. Należy pamiętać, że przesłanie instancji sterownika sieciowego do Take Screenshot jest obowiązkowe, jeśli chcesz użyć tej metody.
# 3) File Dest = new File („src /../ ErrImages /” + System.currentTimeMillis () + „.png”);
# 4) Powyższa instrukcja tworzy folder o nazwie „ErrImages” w folderze „src” i zapisuje nazwę pliku jako bieżący czas systemowy.
# 5) String errflpath = Dest.getAbsolutePath ();
FileUtils.copyFile (scrFile, Dest);
returnerrflpath;
# 6) Powyższe instrukcje kopiują obrazy błędów do folderu docelowego.
Metoda dziennika:
Log używa wbudowanej metody addScreenCapture klasy Extent Test w celu pobrania zrzutu ekranu i dołączenia go do raportu zakresu.
test.log (LogStatus.FAIL, test.addScreenCapture (przechwytywanie (sterownik)) + „Test nie powiódł się”);
Wiadomość zapisana metodą dziennika może zawierać szczegółową wiadomość, w tym oczekiwane i rzeczywiste wyniki w celu debugowania.
Wynik:
Wniosek
Raporty rozszerzone to jeden z najlepszych wbudowanych sposobów generowania dostosowywalnych raportów HTML z przyjemnym interfejsem użytkownika w sterowniku sieciowym Selenium.
Jest to biblioteka open source, którą można łatwo skonfigurować za pomocą Selenium, co czyni ją najlepszym wyborem dla testerów automatyzacji.
Mam nadzieję, że masz teraz jasne pojęcie o raportach rozszerzonych.
rekomendowane lektury
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Wdrożenie naszego pierwszego skryptu WebDriver - Selenium WebDriver Tutorial # 10
- Często zadawane pytania dotyczące selenu
- Jak radzić sobie z alertami / wyskakującymi okienkami w Selenium WebDriver - Samouczek Selenium nr 16
- Niejawne i jawne oczekiwanie w Selenium WebDriver (typy czeków Selenium)
- Jak uruchomić Selenium WebDriver w różnych popularnych przeglądarkach
- WebDriver Cała konfiguracja i instalacja z Eclipse - samouczek Selenium # 9