Budu diskutovat o následujících tématech:
Pojďme tedy začít, přátelé!
Screenshot v Selenium WebDriver: Proč je v Automation testování vyžadován Screenshot?
Screenshoty jsou žádoucí pro analýzu chyb. může během provádění automaticky pořizovat snímky obrazovky. Předpokládejme, že k automatizaci webové stránky napíšete testovací skript, nebudete neustále sledovat, zda pokaždé funguje správně. Nechali byste skript, aby udělal svou práci, a byli byste zaměstnáni nějakou jinou prací.
- Screenshoty nám pomáhají porozumět toku aplikace a kontrolují, zda se podle toho chová.
- Musíte odeslat instanci WebDriver na TakesSc Screenshot.
- Pomáhá vám při hraní křížové procházení testování protože uživatel vyžaduje zobrazení zpráv o provedení
- Sledování provedení by bylo mnohem jednodušší, pokud pracujete na bezhlavém prohlížeči.
- Screenshot testů, které selhaly, lze také snadno zachytit.
Nyní se pojďme posunout vpřed a naučíme se, jak přesně můžete pořídit snímek obrazovky při testování aplikace.
Screenshot v Selenium WebDriver: Jak zachytit Screenshot v Selenium?
K pořízení snímku obrazovky v selenu můžeme použít rozhraní s názvem Vezme snímek obrazovky. Tato metoda indikuje ovladač, že může zachytit snímek obrazovky a uložit jej různými způsoby.
Syntax:
Souborový soubor = (ovladač ((TakesSc Screenshot)) .getSc ScreenshotAs (OutputType.FILE) String screenshotBase64 = ((TakesSc Screenshot) ovladač) .getSc ScreenshotAs (OutputType.BASE64)
kde Typ výstupu definuje typ výstupu pro snímek obrazovky.
Aby bylo možné pořídit snímek obrazovky a uložit jej na konkrétní místo, existuje metoda s názvem „ getSc ScreenshotAs '
Pochopme to podrobně
jak převrátit celé číslo v pythonu
Pro rozšíření WebDriver Vezme snímek obrazovky Tato metoda vyvíjí maximální úsilí v závislosti na prohlížeči, aby vrátil následující v preferovaném pořadí:
- Celá stránka
- Aktuální okno
- Viditelná část aktuálního rámečku
- Snímek obrazovky celého displeje obsahujícího prohlížeč
- Celý obsah prvku HTML - Viditelná část prvku HTML
Syntax:
X getSc ScreenshotAs (OutputType (X). Target) vyvolá WebDriverException
kde
- X je návratový typ metody
- Cíl obsahuje cílovou adresu
- Vrhá pokud podkladová implementace nepodporuje snímání obrazovky.
Testovací případ selhal
přišel s několika skvělými novými funkcemi, díky nimž je testování aplikace mnohem jednodušší. Je to proto, že umožňuje interakci mimo karanténu Javascript. Jednou z nových užitečných funkcí je možnost pořizovat snímky obrazovky z WebDriveru.
Screenshoty můžete pořizovat v kterékoli fázi testu, ale většinou se používá při testování selže a pořizování snímků obrazovky pomáhá analýze, abychom mohli zjistit, co se při selhání testu pokazilo. To lze provést pomocí Anotace TestNG.
K tomu nejdříve budu muset
- Vytvořte třídu a poté ji implementujteTestNG „ ITestListener '' .
- Pak zavolejte metodu „OnTestFailure“ .
- Přidejte kód a pořiďte snímek obrazovky v této metodě.
- Místo pouhého pořízení snímku obrazovky získejte název metody testu, pořiďte snímek obrazovky s názvem testu a umístěte jej do cílové složky.
Nyní je otázkou, jak získat objekt ovladače ve třídě TestListeners pomocí TestNG?
Pomůžu vám pochopit, jak snadné je to udělat.
Chcete-li pořídit snímek obrazovky v selenu, musíme mít objekt ovladače. Získejte ovladač z ITestContext, který musí být nastaven v základním nastavení, kde je snadné vytvořit naši instanci ovladače. Doufám, že v tom máte jasno. V dalším kroku se podíváme na ukázku, kde vám pomůžu pochopit, jak jednoduché je pořídit snímek obrazovky v selenu.Vysvětlím vám zde dva různé programy, abyste získali správnou představu o tom, jak pořídit snímek obrazovky v selenu.
První program se zabývá tím, jak úspěšně zachytit snímek obrazovky testovacího případu. Druhý program vám pomůže pochopit, jak pořídit snímek obrazovky během selhání testu.
Screenshot v Selenium WebDriver: Ukázka
Úplně první věcí, kterou musíte udělat, když chcete otestovat webovou aplikaci, je mít soubory Selenium Jar a knihovny Java. Můžete si vybrat IDE podle vašeho výběru. Dávám přednost práci na Eclipse IDE, protože je uživatelsky přívětivý.
- Ovladač prohlížeče nastavím na
- Vytvořte instanci instance ovladače pomocí ChromeDriveru.
- Získejte adresu URL webové stránky.
- Proveďte odpovídající akce.
V tomto případě pořídím snímek obrazovky naší oficiální webové stránky
Viz níže uvedený kód:
import java.io.File import java.io.IOException import org.apache.commons.io.FileUtils import org.openqa.selenium.OutputType import org.openqa.selenium.TakesSc Screenshot import org.openqa.selenium.WebDriver import org.openqa .selenium.chrome.ChromeDriver veřejná třída Screen {public static void main (String [] args) hodí výjimku {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') ovladač WebDriver = nový ChromeDriver () driver.get ('http://www.edureka.co/') TakesSc Screenshot ts = (TakesSc Screenshot) ovladač Zdroj souboru = ts.getSc ScreenshotAs (OutputType.FILE) FileUtils.copyFile (zdroj, nový soubor ('./ Screenshoty / Obrazovka) .png ')) System.out.println (' Snímek obrazovky je vytvořen ') driver.quit ()}}
Výstup pro výše uvedený kód je zobrazen níže:
A složka obsahuje obrázek
Nyní pochopíme, jak pořídit snímek obrazovky testu, který selhal
- Za prvé,
- Přidejte soubor XML TestNG.
- Přidejte závislost závislostí.
- Vytvořte třídu BaseClass, která obsahuje instanci WebDriver.
- Definujte dvě funkce, jmenovitě initialization () a failed ()
- Zavolejte tyto dvě funkce v jiné třídě, ukázka který dědí BaseClass.
- Tato ukázková třída obsahuje dvě metody setUp (), která volá funkci initialization (), tearDown () pomáhá při zavírání ovladače a ScreenshotTest (), kde prosazujeme skutečný a očekávaný výstup.
- V tomto případě budu tvrdit jak pravdivé, tak nepravdivé, což má za následek selhání testovacího případu.
- Vytvořte další třídu ListenersClass, která WebDriveru pomůže naslouchat konkrétním událostem.
- Přidejte tento kód do ukázkové třídy @Listeners (ListenersClass.class) před hlavní funkcí, abyste si mohli poslechnout testovací případ.
Můžete odkazovat na tento kód:
BaseClass
balíček 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.TakesSc Screenshot import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Listeners public class BaseClass {public static WebDriver driver public static void initialization () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32 exe ') driver = new ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void failed () {File srcFile = (((TakesSc Screenshot) driver) .getSc ScreenshotAs (OutputType.FILE) try {FileUtils.copyFile (srcFile, new File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }
DemoClass
balíček 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 ukázka třídy rozšiřuje BaseClass {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeSc ScreenshotTest () {Assert.assertEquals (true, false)}}
ListenersClass
balíček com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult veřejná třída ListenersClass rozšiřuje BaseClass implementuje ITestListener {public void onTestStart (výsledek ITestResult) {// TODO Automaticky generovaná metoda útržku} public void onTestSuccess (ITestResult result) {// TODO Automaticky generovaná metoda útržku} public void onTestFailure (ITestResult result) {System.out.println ('Failed Test') failed ()} public void onTestSkipped (ITestResult result) {// TODO Auto- generovaný útržek metody} public void onTestFailedButWithinSuccessPercentage (ITestResult result) {// TODO Auto-generated method stub} public void onStart (ITestContext context) {// TODO Auto-generated method stub} public void onFinish (ITestContext context) {// TODO Auto -generovaný útržek metody}}
Výstup je znázorněn tímto způsobem:
Tímto ukončujeme blog „How to take a screenshot in Selenium WebDriver“. Doufám, že se vám tento článek líbil a pochopili, jak spustit testovací případ. Máte na nás dotaz? Uveďte to prosím v sekci komentářů „Jak pořídit snímek obrazovky v selenovém WebDriveru“ a my se vám ozveme. Pokud se chcete dozvědět více o Selenium WebDriver a budovat si stejnou kariéru, podívejte se na náš který přichází s živým tréninkem vedeným instruktorem a zkušenostmi z reálného projektu. Toto školení vám pomůže hlouběji porozumět testování selenu a pomůže vám dosáhnout mistrovství v předmětu.