Kaip padaryti ekrano kopiją „Selenium WebDriver“



Šis straipsnis apie tai, kaip padaryti ekrano kopiją „Selenium WebDriver“, padės jums sužinoti, kaip užfiksuoti ekrano kopiją naudojant „TakesScreenshot“ metodą ir „TestNG“ klausytojus

„Automation Testing“ apibrėžė naują šiuolaikinių bandymų maišytuvą, todėl čia reikia likti. Tačiau jei bandymo procesas nepavyksta, būtų labai nepatogu iš naujo išbandyti visą scenarijų. Čia praverčia ekrano kopijos, nes jos padeda akimirksniu aptikti bandymo gedimus. Šiame tinklaraštyje sužinosime, kaip padaryti ekrano kopiją „WebDriver“.

Aptarsiu šias temas:

Taigi, pradėkime, žmonės!





„Selenium WebDriver“ ekrano kopija: kodėl atliekant automatikos testavimą reikalinga ekrano kopija?

Klaidų analizei pageidautinos ekrano nuotraukos. vykdymo metu gali automatiškai padaryti ekrano kopijas. Tarkime, kad jūs rašote bandomąjį scenarijų, norėdami automatizuoti tinklalapį, jūs nežiūrėtumėte, ar jis veikia tinkamai kiekvieną kartą. Leistumėte scenarijui atlikti savo darbą ir būtumėte užsiėmęs kitu darbu.

  • Ekrano nuotraukos padeda mums suprasti programų srautą ir patikrina, ar ji elgiasi atitinkamai.
  • Turite susieti „WebDriver“ egzempliorių į „TakesScreenshot“.
  • Tai padeda, kol tu koncertuoji kryžminio naršymo testavimas nes vartotojas reikalauja peržiūrėti vykdymo ataskaitas
  • Vykdymo stebėjimas taptų daug lengvesnis, jei dirbate naršyklėje be galvos.
  • Testų, kurie nepavyko, ekrano kopiją taip pat galima lengvai užfiksuoti.

Dabar paženkime į priekį ir sužinokime, kaip tiksliai galite padaryti ekrano kopiją bandydami programą.



„Selenium WebDriver“ ekrano kopija: Kaip užfiksuoti „Selenium“ ekrano kopiją?

Norėdami užfiksuoti ekrano kopiją „Selenium“, galime naudoti sąsają, vadinamą Padaro ekrano kopiją. Šis metodas tnurodo tvarkyklę, kad ji gali užfiksuoti ekrano kopiją ir ją išsaugoti įvairiais būdais.

Sintaksė:



Failo failas = ([TakesScreenshot] tvarkyklė] .getScreenshotAs (OutputType.FILE) Eilutės screenshotBase64 = (([TakesScreenshot) tvarkyklė] .getScreenshotAs (OutputType.BASE64)

kur OutputType apibrėžia ekrano kopijos išvesties tipą.

Norėdami užfiksuoti ekrano kopiją ir laikyti ją tam tikroje vietoje, yra metodas, vadinamas getScreenshotAs '

Supraskime tai išsamiai

„WebDriver“ pratęsimui Padaro ekrano kopiją metodas, tai stengiasi, atsižvelgiant į naršyklę, pateikti pageidaujama tvarka:

  • Visas puslapis
  • Dabartinis langas
  • Matoma dabartinio kadro dalis
  • Viso ekrano, kuriame yra naršyklė, ekrano kopija
  • Visas HTML elemento turinys - matoma HTML elemento dalis

Sintaksė:

X „getScreenshotAs“ („OutputType“ (X). Target) meta „WebDriverException“

kur

  • X yra metodo grąžinimo tipas
  • „Target“ turi paskirties adresą
  • Metimai jei pagrindinis įgyvendinimas nepalaiko ekrano kopijos.

Bandomoji byla nepavyko

pateikė keletą puikių naujų funkcijų, kurios žymiai palengvina programos testavimą. Taip yra todėl, kad leidžia bendrauti ne „Javascript“ smėlio dėžėje. Viena iš naujų naudingų funkcijų yra galimybė fotografuoti iš „WebDriver“.

Ekrano kopijas galite fotografuoti bet kuriame bandymo etape, tačiau dažniausiai tai naudojama bandymo metu nepavyksta ekrano kopijų darymas padeda atlikti analizę, kad galėtume pamatyti, kas nepavyko per bandymą. Tai galima padaryti naudojant „TestNG“ anotacijos.

Norėdami tai padaryti, pirmiausia turėsiu

  • Sukurkite klasę ir tada įgyvendinkiteTestNG ‘ „ITestListener“ ' .
  • Tada iškvieskite metodą „OnTestFailure“ .
  • Pridėkite kodą, kad padarytumėte ekrano kopiją šiuo metodu.
  • Užuot tik padarę ekrano kopiją, gaukite bandymo metodo pavadinimą ir padarykite ekrano kopiją su bandymo pavadinimu ir įdėkite jį į paskirties aplanką.

Dabar kyla klausimas, kaip gauti tvarkyklės objektą „TestListeners“ klasėje naudojant „TestNG“?

Padėsiu suprasti, kaip lengva tai padaryti.

Norėdami padaryti ekrano kopiją „Selenium“, turime turėti tvarkyklės objektą. Gaukite tvarkyklę iš „ITestContext“, kuris turi būti nustatytas pagrindinėje sąrankoje, kur lengva sukurti mūsų tvarkyklės egzempliorių. Tikiuosi, kad vaikinai tai aišku. Žengdami į priekį, apžvelgsime demonstracinę versiją, kur padėsiu suprasti, kaip paprasta padaryti ekrano kopiją „Selenium“.

Čia paaiškinsiu dvi skirtingas programas, kad gautumėte tinkamą idėją, kaip padaryti ekrano kopiją „Selenium“.

Pirmoji programa nagrinėja, kaip sėkmingai užfiksuoti bandomosios bylos ekrano kopiją. Antroji programa padeda suprasti, kaip padaryti ekrano kopiją bandymo nesėkmės metu.

„Selenium WebDriver“ ekrano kopija: Demonstracija

Pirmas dalykas, kurį reikia padaryti, kai norite išbandyti žiniatinklio programą, yra turėti „Selenium Jar“ failus ir „Java“ bibliotekas. Galite pasirinkti savo pasirinktą IDE. Man labiau patinka dirbti su „Eclipse IDE“, nes jis yra patogus vartotojui.

  • Aš nustatysiu naršyklės tvarkyklę į
  • Intuituokite tvarkyklės egzempliorių naudodami „ChromeDriver“.
  • Gaukite tinklalapio URL.
  • Atlikite atitinkamus veiksmus.

Tokiu atveju aš padarysiu mūsų oficialaus tinklalapio ekrano kopiją

Žr. Žemiau pateiktą kodą:

importuoti java.io.File importuoti java.io.IOException importuoti org.apache.commons.io.FileUtils importuoti org.openqa.selenium.OutputType importuoti org.openqa.selenium.TakesScreenshot importuoti org.openqa.selenium.WebDriver importuoti org.openqa .selenium.chrome.ChromeDriver viešosios klasės ekranas {public static void main (String [] args) meta išimtį {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') „WebDriver“ tvarkyklė = nauja „ChromeDriver“ (nauja „ChromeDriver“) driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) tvarkyklės failo šaltinis = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (source, new File ('./ Screenshots / Screen) .png ')) System.out.println (' padaryta ekrano kopija ') driver.quit ()}}

Pirmiau minėto kodo išvestis pavaizduota žemiau:

„ScreenOutput“ - kaip padaryti ekrano kopiją „Selenium“ - „Edureka“

Ir aplanke yra vaizdas

Dabar supraskime, kaip padaryti bandymo ekrano kopiją nepavyko

  • Pirmas,
  • Pridėkite „TestNG XML“ failą.
  • Pridėti pridėtines priklausomybes.
  • Sukurkite klasės „BaseClass“, kurioje yra „WebDriver“ egzempliorius.
  • Apibrėžkite dvi funkcijas, būtent inicijavimą () ir nepavyko ()
  • Iškvieskite šias dvi funkcijas kitoje klasėje, demonstracinė versija kuris paveldi „BaseClass“.
  • Šioje „Demo“ klasėje yra du metodai „setUp“ (), kurie iškviečia inicijavimo () funkciją, „tearDown“ () padeda uždaryti tvarkyklę ir „ScreenshotTest“ (), kur mes tvirtiname faktinę ir numatomą išvestį.
  • Šiuo atveju aš tvirtinsiu teisingą ir neteisingą, o tai lemia bandomosios bylos nesėkmę.
  • Sukurkite kitą klasę „ListenersClass“, kuri padės „WebDriver“ klausytis konkrečių įvykių.
  • Pridėkite šį kodą prie demonstracinės klasės @ Klausytojai (ListenersClass.class) prieš pagrindinę funkciją, kad galėtumėte išklausyti bandomąjį atvejį.

Galite nurodyti šį kodą:

„BaseClass“

kaip sukurti atsitiktinę eilutę Java
paketas com.edureka import java.io.File importuoti java.io.IOException import org.apache.commons.io.FileUtils importuoti org.openqa.selenium.OutputType import org.openqa.selenium.TakesScreenshot import org.openqa.selenium.WebDriver importuoti org.openqa.selenium.chrome.ChromeDriver importuoti org.testng.annotations.Klausytojai viešoji klasė „BaseClass“ {viešoji statinė „WebDriver“ tvarkyklės viešoji statinė tuštumo inicijavimas () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver. exe ') tvarkyklė = naujas „ChromeDriver“ () driver.get (' http://www.edureka.co/ ')} public void nepavyko () {File srcFile = ((TakesScreenshot) tvarkyklė). tryScreenshotAs (OutputType.FILE) pabandyti {FileUtils.copyFile (srcFile, new File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

„DemoClass“

paketas com.edureka import org.testng.Assert import org.testng.annotations.AfterMethod importuoti org.testng.annotations.BeforeMethod importuoti org.testng.annotations.Klausytojai importuoti org.testng.annotations.Test @Listeners (ListenersClass.class) public klasės demonstracija pratęsia „BaseClass“ {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

Klausytojų klasė

paketas com.edureka import org.testng.ITestContext import org.testng.ITestListener importuoti org.testng.ITestResult viešosios klasės „ListenersClass“ praplečia „BaseClass“ įgyvendina „ITestListener“ {public void onTestStart („ITestResult“ rezultatas) {// 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') nepavyko ()} public void onTestSkipped (ITestResult rezultatas) {// TODO Auto- generuoto metodo 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 sugeneruotas metodas stub}}

Rezultatas vaizduojamas tokiu būdu:

Tuo mes baigėme šį tinklaraštį „Kaip padaryti ekrano kopiją„ Selenium WebDriver ““. Tikiuosi, kad jums patiko šis straipsnis ir supratote, kaip vykdyti bandomąjį atvejį. Turite mums klausimą? Prašau tai paminėti komentarų skiltyje „Kaip padaryti ekrano kopiją„ Selenium WebDriver ““ ir mes su jumis susisieksime. Jei norite sužinoti daugiau apie „Selenium WebDriver“ ir kurti karjerą tame pačiame, patikrinkite mūsų puslapį kuris ateina su instruktorių vedamomis tiesioginėmis treniruotėmis ir realių projektų patirtimi. Šie mokymai padės jums išsamiau suprasti seleno testavimą ir padės įsisavinti šį dalyką.