Kako napraviti snimku zaslona u Selenium WebDriver



Ovaj članak o snimanju snimke zaslona u programu Selenium WebDriver pomaže vam naučiti kako snimiti snimku zaslona metodom TakesScreenshot i slušateljima TestNG

Ispitivanje automatizacije definiralo je novu slavinu modernog testiranja i ona će ovdje ostati. Međutim, ako postupak testiranja ne uspije, bilo bi vrlo nezgodno ponovno testirati cijelu skriptu. Ovdje su korisne snimke zaslona jer pomažu u trenutnom otkrivanju neuspjeha na testu. Kroz medij ovog bloga naučit ćemo kako napraviti snimku zaslona WebDriver.

Razgovarat ću o sljedećim temama:

Pa, krenimo, ljudi!





Snimka zaslona u Selenium WebDriver: Zašto je snimka zaslona potrebna u testiranju automatizacije?

Snimke zaslona poželjne su za analizu bugova. može automatski snimati snimke zaslona tijekom izvršavanja. Pretpostavimo da napišete testnu skriptu za automatizaciju web stranice, ne biste nastavili nadzirati kako biste provjerili radi li svaki put kako treba. Pustili biste skriptu da radi svoj posao i bili biste zauzeti nekim drugim poslom.

  • Snimke zaslona pomažu nam u razumijevanju tijeka aplikacije i provjerava ponaša li se u skladu s tim.
  • Morate otkucati instancu WebDriver na TakesScreenshot.
  • Pomaže dok nastupate ispitivanje unakrsnog pregledavanja kao što korisnik zahtijeva da pregleda izvješća o izvršenju
  • Praćenje izvršenja postalo bi mnogo lako ako radite na pregledniku bez glave.
  • Snimka zaslona testova koji nisu uspjeli također se može lako snimiti.

Krenimo sada i naučimo kako točno možete napraviti snimku zaslona tijekom testiranja aplikacije.



Snimka zaslona u Selenium WebDriver: Kako snimiti snimku zaslona u Selenium?

postdiplomski je isto kao i magistri

Za snimanje snimke zaslona u programu Selenium možemo koristiti sučelje, tzv Snima snimak zaslona. Ova metoda ioznačava upravljački program da može snimiti snimak zaslona i pohraniti ga na različite načine.

Sintaksa:



Datoteka datoteke = ((TakesScreenshot) pokretački program) .getScreenshotAs (OutputType.FILE) String screenshotBase64 = ((TakesScreenshot) pokretački program) .getScreenshotAs (OutputType.BASE64)

gdje OutputType definira vrstu izlaza za snimku zaslona.

Da biste snimili snimku zaslona i pohranili je na određeno mjesto, postoji metoda koja se naziva „ getScreenshotAs '

Shvatimo to u detalje

Za proširivanje WebDrivera Snima snimak zaslona metodom, ovo čini najbolji napor ovisno o pregledniku da vrati sljedeće u poželjnom redoslijedu:

  • Cijela stranica
  • Trenutni prozor
  • Vidljivi dio trenutnog okvira
  • Snimak zaslona cijelog zaslona koji sadrži preglednik
  • Cjelokupni sadržaj HTML elementa - vidljivi dio HTML elementa

Sintaksa:

X getScreenshotAs (OutputType (X). Target) baca WebDriverException

gdje

  • X je vrsta povrata metode
  • Cilj sadrži odredišnu adresu
  • Baca ako temeljna implementacija ne podržava snimanje zaslona.

Test slučaj nije uspio

je iznio neke sjajne nove funkcionalnosti koje znatno olakšavaju testiranje aplikacije. To je zato što omogućuje interakciju izvan Javascriptovog pješčanika. Jedna od novih korisnih funkcija je mogućnost snimanja snimaka zaslona s WebDrivera.

Snimke zaslona možete napraviti u bilo kojoj fazi testa, ali uglavnom se koristi za vrijeme testa ne uspije a snimanje zaslona pomaže analizi kako bismo mogli vidjeti što je pošlo po zlu tijekom neuspjeha testa. To se može učiniti pomoću Bilješke za TestNG.

Da bih to učinio, prvo ću trebati

  • Stvorite klasu, a zatim implementirajteTestNG ‘ ITestListener ' .
  • Zatim pozovite metodu ‘OnTestFailure’ .
  • Dodajte kôd za snimanje snimke zaslona ovom metodom.
  • Umjesto da samo napravite snimak zaslona, ​​uzmite naziv metode ispitivanja i napravite snimak zaslona s nazivom testa te ga smjestite u odredišnu mapu.

Sada je pitanje kako dobiti objekt vozača u klasi TestListeners pomoću TestNG?

Pomoći ću vam da shvatite kako je to lako učiniti.

Da bismo napravili snimku zaslona u programu Selenium, moramo imati objekt upravljačkog programa. Nabavite upravljački program iz ITestContext-a koji mora biti postavljen u osnovnom postavljanju, gdje je lako stvoriti našu instancu upravljačkog programa. Nadam se da ste s tim jasni. Dalje ćemo pogledati demonstraciju u kojoj ću vam pomoći da shvatite kako je jednostavno napraviti snimku zaslona u programu Selenium.

Ovdje ću objasniti dva različita programa kako biste stekli odgovarajuću ideju o tome kako napraviti snimku zaslona u programu Selenium.

Prvi se program bavi načinom snimanja snimke zaslona uspješnog pokretanja test slučaja. Drugi vam program pomaže razumjeti kako napraviti snimku zaslona tijekom neuspjeha testa.

Snimka zaslona u Selenium WebDriver: Demo

Prvo što trebate učiniti kada želite testirati web aplikaciju je posjedovanje datoteka Selenium Jar i Java knjižnica. Možete odabrati IDE po svom izboru. Više volim raditi na Eclipse IDE-u jer je jednostavan za upotrebu.

  • Postavit ću upravljački program preglednika na
  • Instancirajte instancu upravljačkog programa s ChromeDriverom.
  • Dohvatite URL web stranice.
  • Izvršite odgovarajuće radnje.

U ovom slučaju napravit ću snimku zaslona naše službene web stranice

Pogledajte donji 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 zaslon javne klase {public static void main (String [] args) baca izuzetak {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver driver = newDriver vozač = newDriver драйвер = novi WebDriver = driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) driver Izvor datoteke = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (izvor, nova datoteka ('./ Snimke zaslona / zaslon .png ')) System.out.println (' snimka zaslona je snimljena ') driver.quit ()}}

Izlaz za gornji kod prikazan je ispod:

ScreenOutput - Kako napraviti snimku zaslona u programu Selenium - Edureka

A mapa sadrži sliku

Sada, hajde da shvatimo kako napraviti snimku zaslona testa koji nije uspio

  • Prvi,
  • Dodajte XML datoteku TestNG.
  • Dodajte maven ovisnosti.
  • Stvorite klasu BaseClass koja sadrži instancu WebDriver.
  • Definirajte dvije funkcije, a to su inicijalizacija () i neuspjeh ()
  • Pozovite ove dvije funkcije u drugu klasu, demo koji nasljeđuje BaseClass.
  • Ova demo klasa sadrži dvije metode setUp () koja poziva funkciju inicijalizacije (), tearDown () pomaže u zatvaranju upravljačkog programa i ScreenshotTest () gdje utvrđujemo stvarni i očekivani izlaz.
  • U ovom ću slučaju tvrditi i istinito i netačno što rezultira neuspjehom testnog slučaja.
  • Stvorite još jedan razred, ListenersClass koji pomaže WebDriveru da sluša određene događaje.
  • Dodajte ovaj kôd u demo klasu @Listeners (ListenersClass.class) prije glavne funkcije kako biste preslušali test slučaj.

Možete se pozvati na ovaj kod:

Osnovni razred

paket 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 uvoz org.openqa.selenium.chrome.ChromeDriver uvoz org.testng.annotations.Listeners javnog reda BaseClass {javnih statičkih WebDriver vozač javnog static void inicijalizacije () {System.setProperty ( 'webdriver.chrome.driver', „C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver. exe ') driver = novi ChromeDriver () driver.get (' http://www.edureka.co/ ')} javna praznina nije uspjela () {Datoteka srcFile = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE) try {FileUtils.copyFile (srcFile, nova datoteka ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

DemoClass

paket 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 klasa proširuje BaseClass {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

Klasa slušatelja

naučite pl sql na mreži besplatno
paket com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult javna klasa ListenersClass proširuje BaseClass implementira ITestListener {public void onTestStart (rezultat ITestResult) {// TODO Auto-generated method stub} javna praznina onTSS (Rezultat ITestResult) {// TODO Automatski generirani klat metode} javna praznina onTestFailure (rezultat ITestResult) {System.out.println ('Failed Test') failed ()} javna praznina onTestSkipped (rezultat ITestResult) {// TODO Auto- generirani stub metode} javna praznina onTestFailedButWithinSuccessPercentage (rezultat ITestResult) {// TODO Automatski generirani stub metode} javna praznina onStart (kontekst ITestContext) {// TODO Automatski generirani stub} javna praznina onFinish (kontekst ITestContext) {// TODO Auto -generirana klina metoda}}

Izlaz je prikazan na ovaj način:

Ovim smo došli do kraja ovog bloga 'Kako napraviti snimku zaslona u Selenium WebDriver'. Nadam se da ste uživali u ovom članku i da ste razumjeli kako pokrenuti testni slučaj. Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare u 'Kako napraviti snimku zaslona u programu Selenium WebDriver' i javit ćemo vam se. Ako želite saznati više o Selenium WebDriver-u i u njemu izgraditi karijeru, pogledajte našu koja dolazi s treningom uživo pod vodstvom instruktora i iskustvom u stvarnom životu. Ovaj trening pomoći će vam da dublje razumijete testiranje selena i pomoći vam da postignete ovladavanje tom temom.