Kuidas teha seleeni WebDriveris ekraanipilti



See artikkel Selenium WebDriveris ekraanipildi tegemise kohta aitab teil teada saada, kuidas ekraanipilti jäädvustada, kasutades meetodit TakesScreenshot ja TestNG kuulajaid

Automaatika testimine on määratlenud uue tänapäevase katsetamise segisti ja see on siin, et jääda. Kui aga testimisprotsess ebaõnnestub, oleks kogu skripti uuesti testimine väga ebamugav. Siit tulevad ekraanipildid kasuks, kuna need aitavad testirikke koheselt tuvastada. Selle blogi vahendusel õpime, kuidas ekraanipilti teha Veebidraiver.

Ma arutlen järgmistel teemadel:

Alustame siis, inimesed!





Ekraanipilt teenuses Selenium WebDriver: miks on automaatika testimisel vaja ekraanipilti?

Vigade analüüsimiseks on soovitavad ekraanipildid. saab täitmise ajal automaatselt ekraanipilte teha. Oletame, et kirjutate veebilehe automatiseerimiseks testiskripti, te ei jälgiks pidevalt, kas see töötab iga kord õigesti. Laseksite skriptil oma tööd teha ja teid hõivaks mõni muu töö.

  • Ekraanipildid aitavad meil mõista rakenduste voogu ja kontrollivad, kas see käitub vastavalt.
  • Peate tippima WebDriveri eksemplari TakesScreenshoti.
  • See aitab teie esinemise ajal rist sirvimise testimine kuna kasutaja nõuab täitmisaruannete vaatamist
  • Täitmise jälgimine muutuks palju lihtsamaks, kui töötate peata brauseriga.
  • Ebaõnnestunud testide ekraanipilti saab hõlpsasti ka jäädvustada.

Nüüd liikuge edasi ja õppige, kuidas saate rakenduse testimise ajal ekraanipildi teha.



Ekraanipilt seleenis WebDriver: kuidas jäädvustada seleenipilti?

Seleniumi ekraanipildi jäädvustamiseks saame kasutada liidest, mida nimetatakse Võtab ekraanipildi. See meetod indikeerib draiveri, et see saab ekraanipilti jäädvustada ja salvestada erineval viisil.

stringide konstantses kogumis ei ole kahte sama sisuga stringiobjekti.

Süntaks:



Failifail = ([TakesScreenshot] draiver) .getScreenshotAs (OutputType.FILE) Stringi ekraanipiltBase64 = ((TakesScreenshot) draiver) .getScreenshotAs (OutputType.BASE64)

kus OutputType määratleb ekraanipildi väljundi tüübi.

Ekraanipildi jäädvustamiseks ja kindlasse kohta salvestamiseks on meetod nimega getScreenshotAs '

Saame sellest üksikasjalikult aru

WebDriveri laiendamiseks Võtab ekraanipildi meetodi abil teeb see parima, olenevalt brauserist, järgmise tagastamiseks eelistatud järjekorras:

  • Kogu leht
  • Praegune aken
  • Praeguse kaadri nähtav osa
  • Ekraanipilt kogu kuvast, mis sisaldab brauserit
  • HTML-elemendi kogu sisu - HTML-elemendi nähtav osa

Süntaks:

X getScreenshotAs (OutputType (X). Target) viskab WebDriverExceptioni

kus

  • X on meetodi tagastustüüp
  • Sihtmärk hoiab sihtkoha aadressi
  • Viskab kui aluseks olev rakendus ei toeta ekraanipiltide jäädvustamist.

Testjuhtum ebaõnnestus

on välja mõelnud mõned suurepärased funktsioonid, mis muudavad rakenduse testimise palju lihtsamaks. Seda seetõttu, et võimaldab suhtlemist väljaspool Javascripti liivakasti. Üks uutest kasulikest funktsioonidest on WebDriverilt ekraanipiltide tegemine.

r programmeerimiskeelt kasutavad ettevõtted

Ekraanipilte saate teha testi igas etapis, kuid enamasti kasutatakse seda testi tegemisel ebaõnnestub ja ekraanipiltide tegemine aitab analüüsi teha, et saaksime näha, mis katse ebaõnnestumisel valesti läks. Seda saab teha kasutades TestNG märkused.

Selleks on kõigepealt vaja

  • Looge klass ja seejärel juurutageTestNG ’ ITestListener ' .
  • Seejärel kutsuge meetod ‘OnTestFailure’ .
  • Selle meetodi ekraanipildi tegemiseks lisage kood.
  • Selle asemel, et lihtsalt ekraanipilti teha, hankige testimeetodi nimi ja tehke testi nimega ekraanipilt ning asetage see sihtkausta.

Nüüd on küsimus selles, kuidas saada draiveri objekt TestListeners klassi, kasutades TestNG-d?

Aitan teil mõista, kui lihtne on seda teha.

Seleniumis ekraanipildi tegemiseks peab meil olema draiveri objekt. Hankige draiver ITestContextist, mis tuleb seadistada põhiseadistuses, kus meie draiveri eksemplari on lihtne luua. Loodan, et teil on sellega selge. Edasi liikudes vaatame demot, kus aitan teil mõista, kui lihtne on seleenis ekraanipilti teha.

Seletan siin kahte erinevat programmi, et saaksite korraliku ettekujutuse selle kohta, kuidas Seleenis ekraanipilti teha.

Esimene programm käsitleb seda, kuidas proovijuht edukalt käivitada. Teine programm aitab teil mõista, kuidas testi ebaõnnestumisel ekraanipilti teha.

Ekraanipilt teenuses Selenium WebDriver: Demo

Kõige esimene asi, mida teha, kui soovite veebirakendust testida, on Selenium Jar failide ja Java teekide olemasolu. Võite valida enda valitud IDE. Eelistan töötada Eclipse IDE-ga, kuna see on kasutajasõbralik.

  • Ma määran brauseri draiveriks
  • Käivitage draiveri eksemplar ChromeDriveri abil.
  • Hankige veebilehe URL.
  • Tehke vastavad toimingud.

Sel juhul võtan ekraanipildi meie ametlikust veebisaidist

Vaadake allolevat koodi:

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 avaliku klassi ekraan {public static void main (String [] args) viskab erandi {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver draiver (uus ChromeDriver) driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) draiverifaili allikas = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (source, new File ('./ Screenshots / Screen) .png ')) System.out.println (' ekraanipilt on tehtud ') driver.quit ()}}

Ülaltoodud koodi väljund on kujutatud allpool:

ScreenOutput - kuidas teha seleenis ekraanipilti - Edureka

Ja kaust sisaldab pilti

erinevat tüüpi raamid seleenis

Nüüd andke meile mõista, kuidas katse ekraanipilti teha nurjus

  • Esiteks
  • Lisage TestNG XML-fail.
  • Lisage maven sõltuvused.
  • Looge klass BaseClass, mis hoiab WebDriveri eksemplari.
  • Määratlege kaks funktsiooni, nimelt initsialiseerimine () ja ebaõnnestunud ()
  • Helistage neile kahele funktsioonile teises klassis, demo mis pärib BaseClassi.
  • Selles Demo klassis on kaks meetodit setUp (), mis kutsub initsialiseerimise () funktsiooni, tearDown () aitab draiverit sulgeda ja ScreenshotTest (), kus me kinnitame tegelikku ja eeldatavat väljundit.
  • Sel juhul väidan nii tõest kui ka valet, mille tulemuseks on testjuhtumi ebaõnnestumine.
  • Looge teine ​​klass - ListenersClass, mis aitab WebDriveril konkreetseid sündmusi kuulata.
  • Lisage see kood enne põhifunktsiooni demoklassi @Listeners (ListenersClass.class), et testjuhtumit kuulata.

Võite viidata sellele koodile:

BaseClass

pakett 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.Kuulajad avalik klass BaseClass {public static WebDriver draiveri avalik staatiline void initsialiseerimine () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver exe ') driver = uus ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void nurjus () {File srcFile = ([TakesScreenshot) draiver] .getScreenshotAs (OutputType.FILE) proovige {FileUtils.copyFile (srcFile, uus File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

Demoklass

pakett 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 klassi demo laiendab BaseClassi {@BeforeMethod public void setUp () {Initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

Kuulajate klass

pakett com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult avalik klass ListenersClass laiendab BaseClassi rakendusi 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') ebaõnnestus ()} public void onTestSkipped (ITestResult result) {// TODO Auto- genereeritud meetod 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 genereeritud meetod stub}}

Väljundit on kujutatud järgmiselt:

Sellega jõuame selle ajaveebi 'Kuidas teha ekraanipilti Seleeni veebidraiveris' lõpuni. Loodan, et teile meeldisid see artikkel ja said aru, kuidas proovijuhtu korraldada. Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises jaotises „Kuidas teha ekraanipilti Selenium WebDriveris” ja võtame teiega ühendust. Kui soovite Selenium WebDriveri kohta rohkem teada saada ja samas karjääri luua, vaadake meie mis on varustatud juhendajate juhitud elava koolituse ja reaalse elu projektikogemusega. See koolitus aitab teil seleenitesti põhjalikult mõista ja aitab teil selle teema valdamist saavutada.