Pillanatkép készítése a Selenium WebDriver programban

Ez a cikk arról, hogyan készíthet képernyőképet a Selenium WebDriver programban, segít megtanulni, hogyan készítsen képernyőképet a TakesScreenshot módszerrel és a TestNG hallgatókkal

Az Automation Testing meghatározta a modern tesztek új csapját, és itt marad. Ha azonban a tesztelési folyamat kudarcot vall, nagyon kellemetlen lenne a teljes szkript újbóli tesztelése. Itt hasznosak a képernyőképek, mivel segítenek azonnal észlelni a teszthibákat. Ennek a blognak a segítségével megtudhatjuk, hogyan készítsünk képernyőképet WebDriver.

A következő témákat fogom megvitatni:



php különbség az echo és a print között

Szóval, kezdjük, emberek!



Pillanatkép a Selenium WebDriver programban: Miért szükséges a képernyőkép?

A képernyőképek kívánatosak a hibajavításhoz. automatikusan készíthet képernyőképeket a végrehajtás során. Tegyük fel, hogy tesztszkriptet ír egy weboldal automatizálásához, és nem figyelné tovább, hogy minden alkalommal jól működik-e. Hagynád, hogy a szkript elvégezze a dolgát, és más munkák lennének elfoglalva.

  • A képernyőképek segítenek megérteni az alkalmazás folyamatát, és ellenőrzik, hogy megfelelően viselkedik-e.
  • A WebDriver példányt meg kell küldenie a TakesScreenshot számára.
  • Segít, amíg fellépsz keresztböngészéses tesztelés mivel a felhasználónak meg kell néznie a végrehajtás jelentéseit
  • A végrehajtás nyomon követése nagyon egyszerűvé válna, ha fej nélküli böngészőn dolgozik.
  • A sikertelen tesztek képernyőképe szintén könnyen rögzíthető.

Most lépjünk előre, és tanuljuk meg, hogyan készíthet pontosan képernyőképet egy alkalmazás tesztelése közben.



Képernyőkép a Selenium WebDriver programban: Hogyan készítsünk képernyőképet a Seleniumban?

Képernyőkép készítéséhez a Seleniumban használhatunk egy felületet, az úgynevezett Képernyőképet készít. Ez a módszer in jelzi az illesztőprogramot, hogy képes képernyőképet készíteni és különböző módon tárolni.

Szintaxis:



Fájlfájl = ([TakesScreenshot] illesztőprogram) .getScreenshotAs (OutputType.FILE) Karakterlánc screenshotBase64 = ((TakesScreenshot) illesztőprogram) .getScreenshotAs (OutputType.BASE64)

hol OutputType meghatározza a képernyőkép kimeneti típusát.

A képernyőkép rögzítéséhez és egy adott helyen történő tárolásához létezik egy „ getScreenshotAs '

Értsük meg ezt részletesen

WebDriver kiterjesztéshez Képernyőképet készít módszerrel, ez teszi a lehető legnagyobb erőfeszítést a böngészőtől függően, hogy a következőket adja vissza előnyös sorrendben:

  • A teljes oldal
  • Aktuális ablak
  • Az aktuális keret látható része
  • A böngészőt tartalmazó teljes képernyő képernyőképe
  • A HTML elem teljes tartalma - A HTML elem látható része

Szintaxis:

X getScreenshotAs (OutputType (X). Target) dobja a WebDriverException szolgáltatást

hol

  • X a módszer visszatérési típusa
  • A Target tartalmazza a célcímet
  • Dobások ha az alapul szolgáló megvalósítás nem támogatja a képernyőkép rögzítését.

A teszteset nem sikerült

nagyszerű új funkciókkal állt elő, amelyek sokkal könnyebbé teszik egy alkalmazás tesztelését. Ez azért van, mert a lehetővé teszi az interakciót a Javascript homokozón kívül. Az egyik új hasznos funkció az, hogy képernyőképeket készíthet a WebDriverről.

Képernyőképeket a teszt bármely szakaszában készíthet, de főleg arra használják, amikor egy tesztet végez nem sikerül és képernyőképek készítése segít az elemzésben, így láthatjuk, hogy mi hibázott egy teszt kudarca során. Ez megtehető a TestNG annotációk.

Ehhez először is meg kell

  • Hozzon létre egy osztályt, majd hajtsa végreTestNG ’ ITestListener ' .
  • Ezután hívjon meg egy módszert ‘OnTestFailure’ .
  • Adja hozzá a kódot a képernyőkép készítéséhez ebben a módszerben.
  • Ahelyett, hogy elkészítené a képernyőképet, szerezze be a Teszt módszer nevét, és készítsen egy képernyőképet a teszt nevével, és helyezze a célmappába.

Most az a kérdés, hogy miként lehet az illesztőprogram objektumot a TestListeners osztályba behozni a TestNG használatával?

Segítek megérteni, milyen könnyű ezt megtenni.

A Seleniumban képernyőkép készítéséhez rendelkezünk kell egy illesztőprogram-objektummal. Szerezze be az illesztőprogramot az ITestContext-ből, amelyet az alapbeállításban kell beállítani, ahol könnyű létrehozni az illesztőprogram-példányunkat. Remélem, srácok tisztában vannak ezzel. Továbblépve megnézzük a bemutatót, ahol segítek megérteni, milyen egyszerű képernyőképet készíteni a Seleniumban.

Itt két különböző programot fogok elmagyarázni, hogy megfelelő ötletet kapjon arról, hogyan készítsen képernyőképet a Seleniumban.

Az első program azzal foglalkozik, hogyan készítsen képernyőképet a tesztfutás sikeres lefutásáról. A második program segít megérteni, hogyan készítsen képernyőképet a teszt sikertelensége alatt.

Képernyőkép a Selenium WebDriver programban: Demó

A webalkalmazás tesztelésének első dolga a Selenium Jar fájlok és a Java könyvtárak birtoklása. Kiválaszthatja a kívánt IDE-t. Inkább az Eclipse IDE-n dolgozom, mert felhasználóbarát.

  • A böngésző illesztőprogramját állítom
  • Instantálja az illesztőprogram példányát a ChromeDriver programmal.
  • Szerezze be a weboldal URL-jét.
  • Végezze el a megfelelő műveleteket.

Ebben az esetben képernyőképet készítek a hivatalos weboldalunkról

Lásd az alábbi kódot:

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) kidobja a {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') kivételt WebDriver illesztőprogram = új ChromeDriver (új ChromeDriver driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) driver File source = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (forrás, új fájl ('./ Pillanatképek / Képernyő) .png ')) System.out.println (' A képernyőkép készítve ') driver.quit ()}}

A fenti kód kimenete az alábbiakban látható:

ScreenOutput - Hogyan készítsünk képernyőképet a Seleniumban - Edureka

És a mappa tartalmazza a képet

Most pedig értsük meg, hogyan lehet képernyőképet készíteni a sikertelen tesztről

  • Első,
  • Adja hozzá a TestNG XML fájlt.
  • Adja hozzá a maven függőségeket.
  • Hozzon létre egy osztályt BaseClass, amely a WebDriver példányt tárolja.
  • Határozzon meg két függvényt, nevezetesen az inicializálást () és a sikertelen ()
  • Hívja meg ezt a két funkciót egy másik osztályban, demó amely örökli a BaseClass-ot.
  • Ez a bemutató osztály rendelkezik a setUp () két módszerrel, amely meghívja az inicializálás () függvényt, a tearDown () segít bezárni az illesztőprogramot és a ScreenshotTest () lehetőséget, ahol a tényleges és a várható kimenetet állítjuk be.
  • Ebben az esetben mind igazat, mind hamisat állítok, ami a teszteset kudarcát eredményezi.
  • Hozzon létre egy másik osztályt, a ListenersClass-ot, amely segít a WebDriver meghallgatni az adott eseményeket.
  • Adja hozzá ezt a kódot a @Listeners (ListenersClass.class) bemutató osztályhoz a fő funkció előtt, hogy meghallgassa a tesztesetet.

Hivatkozhat erre a kódra:

BaseClass

csomag 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.L hallgatók public class BaseClass {public static WebDriver driver public static void inicializálás () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver exe ') driver = új ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void sikertelen () {File srcFile = ((TakesScreenshot) illesztőprogram) .getScreenshotAs (OutputType.FILE) próbálkozás {FileUtils.copyFile (srcFile, új File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

DemoClass

csomag 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 osztálybemutató kiterjeszti a BaseClass {@BeforeMethod public void setUp () {inicializálás ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (igaz, hamis)}}

ListenersClass

csomag com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult nyilvános osztály ListenersClass kiterjeszti a BaseClass megvalósítja az ITestListener {public void onTestStart (ITestResult eredmény) {// TODO Auto-generated method stub} public void onTestSu (ITestResult result) {// TODO Auto-generated method stub} public void onTestFailure (ITestResult result) {System.out.println ('Failed Test') sikertelen ()} public void onTestSkipped (ITestResult eredmény) {// TODO Auto- generált módszer csonk} 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 -generált módszer csonk}}

A kimenetet a következőképpen ábrázolják:

Ezzel véget értünk ennek a „Hogyan készítsünk képernyőképet a Selenium WebDriver programban” blognak. Remélem, hogy önöknek tetszett ez a cikk, és megértették, hogyan kell futtatni egy tesztet. Van egy kérdésünk? Kérjük, említse meg a „Hogyan készítsünk képernyőképet a Selenium WebDriver programban” megjegyzés szakaszában, és kapcsolatba lépünk Önnel. Ha többet szeretne megtudni a Selenium WebDriver-ről, és ugyanebben szeretne karriert építeni, akkor nézze meg a mi oldalunkat amely oktató által vezetett élő képzéssel és valós projekt-tapasztalattal jár. Ez a képzés segít megérteni a szeléntesztet mélyebben, és elsajátítja a témát.