Kuinka ottaa näyttökuva Selenium WebDriver -ohjelmassa



Tämä artikkeli kuvakaappauksen ottamisesta Selenium WebDriver -ohjelmassa auttaa oppimaan kaappaamaan kuvakaappauksen TakesScreenshot-menetelmällä ja TestNG-kuuntelijoilla

Automaatiotestaus on määrittänyt uuden hanan nykypäivän testaukseen, ja se on täällä pysyä. Jos testausprosessi kuitenkin epäonnistuu, on erittäin hankalaa testata koko komentosarja uudelleen. Tässä kuvakaappaukset ovat käteviä, koska ne auttavat havaitsemaan testivirheet välittömästi. Tämän blogin välityksellä opimme ottamaan kuvakaappauksen sisään WebDriver.

Keskustelen seuraavista aiheista:

Joten, aloitetaan, ihmiset!





Näyttökuva Selenium WebDriver -ohjelmassa: Miksi näyttökuva vaaditaan automaatiotestauksessa?

Näyttökuvat ovat toivottavia virheiden analysointia varten. voi ottaa kuvakaappauksia automaattisesti suorituksen aikana. Oletetaan, että kirjoitat testikoodin verkkosivun automatisoimiseksi, et seuraisi, toimiiko se aina oikein. Antaisit käsikirjoituksen tehdä työnsä ja sinä olisit kiireinen muussa työssä.

  • Kuvakaappaukset auttavat meitä ymmärtämään sovellusten kulkua ja tarkistavat, toimiiko se sen mukaisesti.
  • Sinun on lähetettävä WebDriver-ilmentymä TakesScreenshotiin.
  • Se auttaa, kun esiintyt ristiselaamisen testaus koska käyttäjän on tarkasteltava suorituksen raportteja
  • Suorituskyvyn seuraaminen olisi paljon helppoa, jos työskentelet päätättömällä selaimella.
  • Näyttökuva epäonnistuneista testeistä voidaan myös helposti kaapata.

Anna nyt mennä eteenpäin ja oppia kuinka voit ottaa kuvakaappauksen sovellusta testattaessa.



Näyttökuva Selenium WebDriver -ohjelmassa: Kuinka kaapata näyttökuva Seleniumissa?

Kaappaamaan kuvakaappauksen Seleniumissa voimme käyttää nimeltään käyttöliittymää Ottaa näytön. Tämä menetelmä iosoittaa kuljettajan, että se voi kaapata kuvakaappauksen ja tallentaa sen eri tavoin.

Syntaksi:



Tiedostotiedosto = ((TakesScreenshot) ohjain) .getScreenshotAs (OutputType.FILE) Merkkijono screenshotBase64 = ((TakesScreenshot) ohjain) .getScreenshotAs (OutputType.BASE64)

missä OutputType määrittelee kuvakaappauksen tulostustyypin.

Kuvakaappauksen kaappaamiseksi ja sen tallentamiseksi tiettyyn sijaintiin on menetelmä nimeltä getScreenshotAs '

Ymmärretään tämä yksityiskohtaisesti

WebDriver jatkuu Ottaa näytön -menetelmällä tämä tekee parhaan mahdollisen selaimen mukaan palauttamaan seuraavat suositeltavassa järjestyksessä:

  • Koko sivu
  • Nykyinen ikkuna
  • Nykyisen kehyksen näkyvä osa
  • Kuvakaappaus koko näytöstä, joka sisältää selaimen
  • HTML-elementin koko sisältö - HTML-elementin näkyvä osa

Syntaksi:

X getScreenshotAs (OutputType (X). Kohde) heittää WebDriverExceptionin

missä

  • X on menetelmän palautustyyppi
  • Kohde omistaa kohdeosoitteen
  • Heittää jos taustalla oleva toteutus ei tue kuvakaappausten sieppaamista.

Testitapaus epäonnistui

on keksinyt hienoja uusia toimintoja, jotka helpottavat sovelluksen testaamista. Tämä johtuu siitä sallii vuorovaikutuksen Javascript-hiekkalaatikon ulkopuolella. Yksi uusista hyödyllisistä toiminnoista on mahdollisuus ottaa kuvakaappauksia WebDriverista.

Voit ottaa kuvakaappauksia missä tahansa testin vaiheessa, mutta enimmäkseen sitä käytetään testin aikana epäonnistuu ja kuvakaappausten ottaminen auttaa analyysiä, jotta voimme nähdä, mikä meni pieleen testivirheen aikana. Tämä voidaan tehdä käyttämällä TestNG-merkinnät.

Tätä varten minun on ensin tehtävä

  • Luo luokka ja toteuta sittenTestNG ’ ITestListener ' .
  • Kutsu sitten menetelmä ’OnTestFailure’ .
  • Lisää koodi ottaa kuvakaappaus tällä menetelmällä.
  • Sen sijaan, että otat kuvakaappauksen, hanki testimenetelmän nimi ja ota kuvakaappaus testin nimellä ja aseta se kohdekansioon.

Nyt on kysymys siitä, kuinka saada ohjainobjekti TestListeners-luokkaan TestNG: n avulla?

Autan sinua ymmärtämään, kuinka helppoa se on tehdä.

Jos haluat ottaa kuvakaappauksen Seleniumissa, meillä on oltava ohjainobjekti. Hanki ohjain ITestContextista, joka on määritettävä peruskokoonpanossa, jossa kuljettajainstanssin luominen on helppoa. Toivottavasti teillä on selvä asia tässä. Edetessä katsomme esittelyä, jossa autan sinua ymmärtämään, kuinka helppoa on ottaa kuvakaappaus Seleniumissa.

Selitän täällä kahta erilaista ohjelmaa, jotta saat oikean kuvan siitä, kuinka kuvakaappaus otetaan Seleniumissa.

Ensimmäinen ohjelma käsittelee kuinka kaapata kuvakaappaus testitapauksesta onnistuneesti. Toinen ohjelma auttaa sinua ymmärtämään, kuinka kuvakaappaus otetaan testivirheen aikana.

Näyttökuva Selenium WebDriver -ohjelmassa: Demo

Aivan ensimmäinen tehtävä, kun haluat testata verkkosovellusta, on saada Selenium Jar -tiedostot ja Java-kirjastot. Voit valita haluamasi IDE: n. Pidän parempana työskennellä Eclipse IDE: n parissa, koska se on käyttäjäystävällinen.

  • Asetan selainohjaimen arvoksi
  • Välitä ajuri-ilmentymä ChromeDriverilla.
  • Hanki verkkosivun URL-osoite.
  • Suorita vastaavat toiminnot.

Tässä tapauksessa otan kuvakaappauksen virallisesta verkkosivustamme

Katso alla oleva koodi:

Tuo java.io.File Tuo java.io.IOException Tuo org.apache.commons.io.FileUtils Tuo org.openqa.selenium.OutputType Tuo org.openqa.selenium.TakesScreenshot Tuo org.openqa.selenium.WebDriver import org.openqa .selenium.chrome.ChromeDriver public class Screen {public static void main (String [] args) heittää poikkeuksen {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver-ohjain = uusi ChromeDriver driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) ohjain Tiedostolähde = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (lähde, uusi tiedosto ('./ Näyttökuvat / Näyttö) .png ')) System.out.println (' Kuva on otettu ') driver.quit ()}}

Yllä olevan koodin lähtö on kuvattu alla:

oppia tietotekniikkaa askel askeleelta

ScreenOutput - Kuinka ottaa kuvakaappaus Seleniumissa - Edureka

Ja kansio sisältää kuvan

Anna nyt ymmärtää, kuinka kuvakaappaus testistä epäonnistui

  • Ensimmäinen,
  • Lisää TestNG XML-tiedosto.
  • Lisää maven-riippuvuudet.
  • Luo luokka BaseClass, joka pitää sisällään WebDriver-ilmentymän.
  • Määritä kaksi toimintoa, nimittäin alustaminen () ja epäonnistunut ()
  • Kutsu nämä kaksi toimintoa toisessa luokassa, esittely joka perii BaseClassin.
  • Tässä esittelyluokassa on kaksi menetelmää setUp (), joka kutsuu alustus () -funktion, tearDown () auttaa sulkemaan ohjaimen ja ScreenshotTest (), joissa väitämme todellisen ja odotetun tuotoksen.
  • Tässä tapauksessa väitän sekä tosi että väärä, mikä johtaa testitapauksen epäonnistumiseen.
  • Luo toinen luokka, ListenersClass, joka auttaa WebDriveria kuuntelemaan tiettyjä tapahtumia.
  • Lisää tämä koodi demoluokkaan @Listeners (ListenersClass.class) ennen päätoimintoa kuunnellaksesi testitapausta.

Voit viitata tähän koodiin:

BaseClass

package 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 WebDriver driver public static void initialization () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver. exe ') driver = uusi ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void epäonnistui () {File srcFile = ((TakesScreenshot) -ohjain) .getScreenshotAs (OutputType.FILE) yritä {FileUtils.copyFile (srcFile, uusi tiedosto ('/ C: / Users / Neha_Vaidya / eclipse-työtila / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

Demoluokka

paketti 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 luokan esittely laajentaa BaseClassia {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

KuuntelijatLuokka

paketti com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult public class ListenersClass laajentaa BaseClass toteuttaa ITestListener {public void onTestStart (ITestResult result) {// 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') Failed ()} public void onTestSkipped (ITestResult result) {// TODO Auto- generated method stub} 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 -generoitu menetelmä stub}}

Tuotos on kuvattu tällä tavalla:

Tämän avulla olemme päässeet loppuun tämän 'Kuinka ottaa kuvakaappaus Selenium WebDriver -sivustolla' -blogille. Toivon, että pidit tästä artikkelista ja ymmärrät kuinka suorittaa testitapaus. Onko sinulla kysymys meille? Mainitse se kommenttiosassa ”Kuinka ottaa kuvakaappaus Selenium WebDriver -sovelluksessa”, niin palaamme sinuun. Jos haluat oppia lisää Selenium WebDriverista ja rakentaa uraa samassa, tutustu meidän joka sisältää ohjaajan vetämän live-koulutuksen ja tosielämän projektikokemuksen. Tämä koulutus auttaa sinua ymmärtämään seleenitestausta perusteellisesti ja auttaa sinua hallitsemaan aihetta.