Како направити снимак екрана у Селениум ВебДривер



Овај чланак о томе како да направите снимак екрана у програму Селениум ВебДривер помаже вам да научите како да снимите снимак екрана помоћу методе ТакесСцреенсхот и слушалаца ТестНГ

Испитивање аутоматизације дефинисало је нову славину модерног тестирања и ту је да остане. Међутим, ако процес тестирања не успе, било би крајње незгодно поново тестирати целу скрипту. Овде су снимци екрана корисни јер помажу у тренутном откривању неуспеха на тесту. Кроз медиј овог блога научићемо како да направимо снимак екрана у ВебДривер.

Разговараћу о следећим темама:

Па, кренимо, људи!





Снимак екрана у Селениум ВебДривер: Зашто је снимак екрана потребан у тестирању аутоматизације?

Снимке екрана су пожељне за анализу грешака. може аутоматски да прави снимке екрана током извршавања. Претпоставимо да напишете тест скрипту за аутоматизацију веб странице, не бисте наставили да надгледате да ли ради сваки пут како треба. Пустили бисте скрипту да ради свој посао и били бисте заузети неким другим послом.

  • Снимке екрана помажу нам да разумемо ток апликације и проверава да ли се понаша у складу с тим.
  • Морате откуцати ВебДривер инстанцу на ТакесСцреенсхот.
  • Помаже док наступате унакрсно испитивање како корисник захтева да прегледа извештаје о извршењу
  • Праћење извршења постало би много лако ако радите на претраживачу без главе.
  • Снимак екрана тестова који нису успели такође се лако може снимити.

Сада, идемо напред и научимо како тачно можете да направите снимак екрана током тестирања апликације.



Снимак екрана у Селениум ВебДривер: Како снимити снимак екрана у Селениум?

Да бисмо снимили снимак екрана у програму Селениум, можемо користити интерфејс, тзв ТакесСцреенсхот. Овај метод иозначава управљачки програм да може снимити снимак екрана и чувати га на различите начине.

Синтакса:



Датотека датотеке = ((ТакесСцреенсхот) управљачки програм) .гетСцреенсхотАс (ОутпутТипе.ФИЛЕ) Стринг сцреенсхотБасе64 = ((ТакесСцреенсхот) управљачки програм) .гетСцреенсхотАс (ОутпутТипе.БАСЕ64)

где ОутпутТипе дефинише тип излаза за снимак екрана.

Да бисте снимили снимак екрана и сачували га на одређеној локацији, постоји метода која се назива „ гетСцреенсхотАс '

Да схватимо ово детаљно

За проширивање ВебДривер-а ТакесСцреенсхот методом, ово чини најбољи напор у зависности од прегледача да врати следеће у пожељном редоследу:

  • Цела страница
  • Тренутни прозор
  • Видљиви део тренутног оквира
  • Снимак екрана целог екрана који садржи прегледач
  • Читав садржај ХТМЛ елемента - видљиви део ХТМЛ елемента

Синтакса:

Кс гетСцреенсхотАс (ОутпутТипе (Кс). Таргет) баца ВебДриверЕкцептион

где

  • Кс је повратни тип методе
  • Циљ садржи одредишну адресу
  • Баца ако основна имплементација не подржава снимање екрана.

Тест случај није успео

је осмислио неке сјајне нове функционалности које знатно олакшавају тестирање апликације. То је зато што омогућава интеракцију изван Јавасцрипт пешчаника. Једна од нових корисних функција је могућност снимања снимака екрана са ВебДривера.

Снимке екрана можете да направите у било којој фази теста, али углавном се користи за време теста не успе а прављење снимака екрана помаже анализи како бисмо могли да видимо шта је пошло по злу током неуспеха теста. То се може учинити помоћу ТестНГ напомене.

Да бих то урадио, прво ћу морати

  • Направите класу, а затим имплементирајтеТестНГ ‘ ИТестЛистенер ' .
  • Затим позовите метод ‘ОнТестФаилуре’ .
  • Додајте код да бисте направили снимак екрана на овај начин.
  • Уместо да направите снимак екрана, узмите назив методе испитивања и направите снимак екрана са именом теста и ставите га у одредишну фасциклу.

Сад се поставља питање како добити објект управљачког програма у класи ТестЛистенерс помоћу ТестНГ?

Помоћи ћу вам да разумете колико је лако то учинити.

Да бисмо направили снимак екрана у програму Селениум, морамо да имамо објекат управљачког програма. Преузмите управљачки програм из ИТестЦонтект-а који мора бити подешен у основном подешавању, где је лако створити нашу инстанцу управљачког програма. Надам се да сте са тим начисто. Крећући се напред, погледаћемо демонстрацију где ћу вам помоћи да разумете како је једноставно направити снимак екрана у програму Селениум.

Овде ћу објаснити два различита програма како бисте стекли праву представу о томе како да направите снимак екрана у програму Селениум.

Први програм се бави начином снимања снимка екрана успешно покренутог тест случаја. Други програм вам помаже да разумете како да направите снимак екрана током неуспеха теста.

Снимак екрана у Селениум ВебДривер: Демо

Прво што треба да урадите када желите да тестирате веб апликацију је да имате датотеке Селениум Јар и Јава библиотеке. Можете одабрати ИДЕ по вашем избору. Више волим да радим на Ецлипсе ИДЕ-у јер је лак за употребу.

  • Подесићу управљачки програм прегледача на
  • Инстанцирајте инстанцу управљачког програма помоћу ЦхромеДривер-а.
  • Дохватите УРЛ веб странице.
  • Извршите одговарајуће радње.

У овом случају ћу направити снимак екрана наше званичне веб странице

Погледајте доњи код:

импорт јава.ио.Филе импорт јава.ио.ИОЕкцептион импорт орг.апацхе.цоммонс.ио.ФилеУтилс импорт орг.опенка.селениум.ОутпутТипе импорт орг.опенка.селениум.ТакесСцреенсхот импорт орг.опенка.селениум.ВебДривер импорт орг.опенка .селениум.цхроме.ЦхромеДривер јавна класа Екран {публиц статиц воид маин (Стринг [] аргс) баца изузетак {Систем.сетПроперти ('вебдривер.цхроме.дривер', 'Ц: УсерсНеха_ВаидиаДесктопцхромедривер_вин32цхромедривер.еке') ВебДривер дривер = невДривервер драјвер =) дривер.гет ('хттп://ввв.едурека.цо/') ТакесСцреенсхот тс = (ТакесСцреенсхот) дривер Извор датотеке = тс.гетСцреенсхотАс (ОутпутТипе.ФИЛЕ) ФилеУтилс.цопиФиле (извор, нова датотека ('./ Снимке екрана / екран .пнг ')) Систем.оут.принтлн (' снимка екрана је снимљена ') дривер.куит ()}}

Излаз за горњи код је приказан испод:

СцреенОутпут - Како направити снимак екрана у програму Селениум - Едурека

А у фасцикли се налази слика

подешавање пхп-а на Виндовсима

Сада, хајде да схватимо како да направимо снимак екрана теста који није успео

  • Први,
  • Додајте датотеку ТестНГ КСМЛ.
  • Додајте зависности мавен.
  • Направите класу БасеЦласс која садржи инстанцу ВебДривер.
  • Дефинишите две функције, наиме иницијализација () и неуспех ()
  • Позовите ове две функције у другој класи, демо која наслеђује БасеЦласс.
  • Ова демо класа садржи две методе сетУп () која позива функцију иницијализације (), теарДовн () помаже у затварању управљачког програма и СцреенсхотТест () где утврђујемо стварни и очекивани излаз.
  • У овом случају ћу тврдити истинито и нетачно што резултира неуспехом тест случаја.
  • Направите још један разред, ЛистенерсЦласс који помаже ВебДриверу да ослушкује одређене догађаје.
  • Додајте овај код у демо класу @Листенерс (ЛистенерсЦласс.цласс) пре главне функције како бисте преслушали тест случај.

Можете се позвати на овај код:

БасеЦласс

пакет цом.едурека импорт јава.ио.Филе импорт јава.ио.ИОЕкцептион импорт орг.апацхе.цоммонс.ио.ФилеУтилс импорт орг.опенка.селениум.ОутпутТипе импорт орг.опенка.селениум.ТакесСцреенсхот импорт орг.опенка.селениум.ВебДривер импорт орг.опенка.селениум.цхроме.ЦхромеДривер импорт орг.тестнг.аннотатионс.Листенерс јавна класа БасеЦласс {јавна статичка покретачка мрежа ВебДривер јавна статичка воид иницијализација () {Систем.сетПроперти ('вебдривер.цхроме.дривер', 'Ц: УсерсНеха_ВаидиаДесктопцхромцхедввередромтопхерромедверверромедверверромромедверверромромедверверромедверверромромедвериверведромедвериверверомедвериверведромедверивердромверверомедвероверведромверидвердиромедвероверведромедверивердиромедверовердиромдверскромчверчварсдведрвдровердведровермироведривердира.пдф еке ') дривер = нови ЦхромеДривер () дривер.гет (' хттп://ввв.едурека.цо/ ​​')} јавна воид није успела () {Филе срцФиле = ((ТакесСцреенсхот) дривер) .гетСцреенсхотАс (ОутпутТипе.ФИЛЕ) три {ФилеУтилс.цопиФиле (срцФиле, нова датотека ('/ Ц: / Усерс / Неха_Ваидиа / ецлипсе-воркспаце / Сцреенс /' + 'СцреенсхотсТакен / тестс.јпг'))} цатцх (ИОЕкцептион е) {е.принтСтацкТраце ()}} }

ДемоЦласс

пакет цом.едурека импорт орг.тестнг.Ассерт импорт орг.тестнг.аннотатионс.АфтерМетход импорт орг.тестнг.аннотатионс.БефореМетход импорт орг.тестнг.аннотатионс.Листенерс импорт орг.тестнг.аннотатионс.Тест @Листенерс (ЛистенерсЦласс.цласс) публиц демо класа проширује БасеЦласс {@БефореМетход јавну празнину сетУп () {иницијализација ()} @АфтерМетход јавна празнина теарДовн () {дривер.куит ()} @Тест јавна празнина такеСцреенсхотТест () {Ассерт.ассертЕкуалс (труе, фалсе)}}

СлушаоциКласа

пакет цом.едурека импорт орг.тестнг.ИТестЦонтект импорт орг.тестнг.ИТестЛистенер импорт орг.тестнг.ИТестРесулт јавна класа ЛистенерсЦласс проширује БасеЦласс имплементира ИТестЛистенер {публиц воид онТестСтарт (ИТестРесулт ресулт) {// ТОДО Ауто-генератед метход стуб} публиц воцесс онТСС (Резултат ИТестРесулт) {// ТОДО Ауто-генератед стуб методе} јавна празнина онТестФаилуре (резултат ИТестРесулт) {Систем.оут.принтлн ('Фаилед Тест') фаилед ()} јавна празнина онТестСкиппед (резултат ИТестРесулт) {// ТОДО Ауто- генерисана метода стуб} јавна празнина онТестФаиледБутВитхинСуццессПерцентаге (резултат ИТестРесулт) {// ТОДО Аутоматски генерисана метода стуб} јавна празнина онСтарт (контекст ИТестЦонтект) {// ТОДО аутоматски генерисана метода} јавна празнина онФинисх (контекст ИТестЦонтект) {// ТОДО Ауто -генерирани стуб методе}}

Излаз је приказан на овај начин:

Овим смо дошли до краја овог блога „Како направити снимак екрана у програму Селениум ВебДривер“. Надам се да сте уживали у овом чланку и да сте разумели како да покренете тест. Имате питање за нас? Молимо вас да га поменете у одељку за коментаре у „Како да направите снимак екрана у програму Селениум ВебДривер“ и јавићемо вам се. Ако желите да сазнате више о Селениум ВебДривер-у и на њему градите каријеру, погледајте нашу који долази са обуком уживо коју воде инструктори и искуством у стварном животу. Овај тренинг ће вам помоћи да дубље разумете тестирање селена и помоћи вам да постигнете мајсторство над предметом.