Będę omawiać następujące tematy:
Więc zaczynajmy, ludzie!
Zrzut ekranu w Selenium WebDriver: Dlaczego zrzut ekranu jest wymagany w testowaniu automatyzacji?
Zrzuty ekranu są pożądane do analizy błędów. może automatycznie robić zrzuty ekranu podczas wykonywania. Załóżmy, że piszesz skrypt testowy, aby zautomatyzować stronę internetową, nie będziesz monitorować, czy za każdym razem działa poprawnie. Pozwolisz skryptowi wykonać swoją pracę i będziesz zajęty jakąś inną pracą.
- Zrzuty ekranu pomagają nam zrozumieć przepływ aplikacji i sprawdzają, czy zachowuje się odpowiednio.
- Musisz typecast instancji WebDriver do TakesScreenshot.
- Pomaga podczas występów testowanie między przeglądarkami zgodnie z wymaganiami użytkownika, aby przeglądać raporty wykonania
- Śledzenie wykonania byłoby znacznie łatwe, jeśli pracujesz na przeglądarce bezgłowej.
- Zrzut ekranu testów, które zakończyły się niepowodzeniem, można również łatwo wykonać.
Przejdźmy teraz dalej i dowiedzmy się, jak dokładnie można zrobić zrzut ekranu podczas testowania aplikacji.
Zrzut ekranu w Selenium WebDriver: Jak zrobić zrzut ekranu w Selenium?
Aby zrobić zrzut ekranu w Selenium, możemy skorzystać z interfejsu o nazwie RobesScreenshot. Ta metoda in informuje sterownik, że może wykonać zrzut ekranu i zapisać go na różne sposoby.
Składnia:
File file = ((TakesScreenshot) sterownik) .getScreenshotAs (OutputType.FILE) String screenshotBase64 = ((TakesScreenshot) sterownik) .getScreenshotAs (OutputType.BASE64)
gdzie Typ wyjścia definiuje typ danych wyjściowych zrzutu ekranu.
Aby zrobić zrzut ekranu i zapisać go w określonej lokalizacji, istnieje metoda o nazwie „ getScreenshotAs '
Zrozummy to szczegółowo
Do rozszerzania WebDriver RobesScreenshot metoda ta dokłada wszelkich starań, w zależności od przeglądarki, aby zwrócić następujące elementy w preferowanej kolejności:
- Cała strona
- Bieżące okno
- Widoczna część bieżącej klatki
- Zrzut ekranu całego ekranu zawierającego przeglądarkę
- Cała zawartość elementu HTML - widoczna część elementu HTML
Składnia:
X getScreenshotAs (OutputType (X). Target) zgłasza WebDriverException
gdzie
implementacja hashmap w kodzie java
- X jest typem zwracanym metody
- Cel przechowuje adres docelowy
- Rzuty jeśli podstawowa implementacja nie obsługuje przechwytywania zrzutów ekranu.
Przypadek testowy nie powiódł się
opracował kilka nowych, świetnych funkcji, które znacznie ułatwiają testowanie aplikacji. To dlatego, że umożliwia interakcję poza piaskownicą Javascript. Jedną z nowych przydatnych funkcji jest możliwość robienia zrzutów ekranu z WebDriver.
Możesz robić zrzuty ekranu na dowolnym etapie testu, ale głównie jest to używane podczas testu zawodzi a robienie zrzutów ekranu pomaga w analizie, dzięki czemu możemy zobaczyć, co poszło nie tak podczas niepowodzenia testu. Można to zrobić za pomocą Adnotacje TestNG.
Aby to zrobić, najpierw muszę
- Utwórz klasę, a następnie zaimplementujTestNG „ ITestListener ' .
- Następnie wywołaj metodę „OnTestFailure” .
- Dodaj kod, aby wykonać zrzut ekranu w tej metodzie.
- Zamiast robić zrzut ekranu, pobierz nazwę metody Test, zrób zrzut ekranu z nazwą testu i umieść go w folderze docelowym.
Teraz pytanie brzmi, jak uzyskać obiekt sterownika w klasie TestListeners za pomocą TestNG?
Pomogę Ci zrozumieć, jak łatwo to zrobić.
Aby zrobić zrzut ekranu w Selenium, musimy mieć obiekt sterownika. Pobierz sterownik z ITestContext, który należy ustawić w podstawowej konfiguracji, w której łatwo jest utworzyć instancję sterownika. Mam nadzieję, że to jasne. Idąc dalej, przyjrzymy się wersji demonstracyjnej, w której pomogę Ci zrozumieć, jak łatwo jest zrobić zrzut ekranu w Selenium.Wyjaśnię tutaj dwa różne programy, abyś miał dobry pomysł, jak zrobić zrzut ekranu w Selenium.
Pierwszy program zajmuje się tym, jak zrobić zrzut ekranu z testu, który został pomyślnie uruchomiony. Drugi program pomaga zrozumieć, jak zrobić zrzut ekranu podczas niepowodzenia testu.
Zrzut ekranu w Selenium WebDriver: Próbny
Pierwszą rzeczą do zrobienia, gdy chcesz przetestować aplikację internetową, jest posiadanie plików Selenium Jar i bibliotek Java. Możesz wybrać dowolne IDE. Wolę pracować na Eclipse IDE, ponieważ jest ono przyjazne dla użytkownika.
- Ustawię sterownik przeglądarki na
- Utwórz wystąpienie sterownika za pomocą ChromeDriver.
- Uzyskaj adres URL strony internetowej.
- Wykonaj odpowiednie czynności.
W takim przypadku zrobię zrzut ekranu naszej oficjalnej strony internetowej
Zobacz poniższy kod:
import java.io.File import java.io.IOException import org.apache.commons.io.FileUtils import org.openqa.selenium.OutputType import org.openqa.selenium.TakesScreenshot import org.openqa.selenium.WebDriver import org.openqa .selenium.chrome.ChromeDriver public class Screen {public static void main (String [] args) rzuca wyjątek {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') Sterownik WebDriver = nowy ChromeDriver () driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) driver File source = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (source, new File ('./ Screenshots / Screen .png ')) System.out.println (' Zrzut ekranu został zrobiony ') driver.quit ()}}
Dane wyjściowe dla powyższego kodu przedstawiono poniżej:
Folder zawiera obraz
Teraz zrozummy, jak zrobić zrzut ekranu testu, który się nie powiódł
- Pierwszy,
- Dodaj plik XML TestNG.
- Dodaj zależności maven.
- Utwórz klasę BaseClass, która zawiera instancję WebDriver.
- Zdefiniuj dwie funkcje, mianowicie initialization () i failed ()
- Nazwij te dwie funkcje w innej klasie, próbny który dziedziczy BaseClass.
- Ta klasa Demo zawiera dwie metody setUp (), które wywołują funkcję initialization (), tearDown () pomaga w zamknięciu sterownika i ScreenshotTest (), gdzie potwierdzamy rzeczywiste i oczekiwane dane wyjściowe.
- W tym przypadku potwierdzę zarówno prawdę, jak i fałsz, co powoduje niepowodzenie przypadku testowego.
- Utwórz kolejną klasę, ListenersClass, która pomoże WebDriverowi nasłuchiwać określonych zdarzeń.
- Dodaj ten kod w klasie demonstracyjnej @Listeners (ListenersClass.class) przed funkcją główną, aby odsłuchać przypadek testowy.
Możesz odwołać się do tego kodu:
BaseClass
pakiet com.edureka import java.io.File import java.io.IOException import org.apache.commons.io.FileUtils import org.openqa.selenium.OutputType import org.openqa.selenium.TakesScreenshot import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Listeners public class BaseClass {public static sterownik WebDriver public static void initialization () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedrediver_winr32 exe ') driver = new ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void failed () {File srcFile = (((TakesScreenshot) driver)) .getScreenshotAs (OutputType.FILE) try {FileUtils.copyFile (srcFile, new File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }
DemoClass
pakiet com.edureka import org.testng.Assert import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeMethod import org.testng.annotations.Listeners import org.testng.annotations.Test @Listeners (ListenersClass.class) public demo klasy rozszerza BaseClass {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}
ListenersClass
pakiet com.edureka import org.testng.ITestContext import org.testng.ITestResult import org.testng.ITestResult klasa publiczna ListenersClass rozszerza BaseClass implementuje ITestListener {public void onTestStart (ITestResult result) {// TODO Auto-generowana metoda stub} public void onTestSuccess (Wynik ITestResult) {// TODO Automatycznie wygenerowana metoda stub} public void onTestFailure (ITestResult result) {System.out.println ('Failed Test') failed ()} public void onTestSkipped (ITestResult result) {// TODO Auto- wygenerowana metoda stub} public void onTestFailedButWithinSuccessPercentage (ITestResult result) {// TODO Automatycznie wygenerowana metoda stub} public void onStart (ITestContext context) {// TODO Automatycznie wygenerowana metoda stub} public void onFinish (ITestContext context) {// TODO Auto -generowana metoda stub}}
Wynik jest przedstawiony w następujący sposób:
Tym samym kończymy blog „Jak zrobić zrzut ekranu w Selenium WebDriver”. Mam nadzieję, że podobał wam się ten artykuł i zrozumieliście, jak przeprowadzić test. Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w sekcji „Jak zrobić zrzut ekranu w Selenium WebDriver”, a my skontaktujemy się z Tobą. Jeśli chcesz dowiedzieć się więcej o Selenium WebDriver i w ten sposób zbudować karierę, sprawdź nasze który obejmuje szkolenie na żywo prowadzone przez instruktora i rzeczywiste doświadczenie projektowe. To szkolenie pomoże ci dogłębnie zrozumieć testowanie selenu i pomoże ci osiągnąć mistrzostwo w tym temacie.