debugging selenium scripts with logs selenium tutorial 26
Сада се крећемо према крају нашег најопсежнијег Бесплатни водичи за алат за испитивање селена . Водичи које сада објављујемо део су напредне селенијске обуке.
У претходном водичу задржали смо фокус на Алат за континуирану интеграцију назван Худсон . То је бесплатна алатка и има много више могућности за изградњу пројекта тестирања, даљинско извршавање класа тестирања и слање обавештења заинтересованим странама о статусу пријаве у вези са положеним и неуспелим тест случајевима.
У тренутном водичу кренули бисмо ка неким напредним концептима који би директно или индиректно помогли оптимизација оквира за аутоматизацију и доноси већу видљивост корисницима.
Стога бисмо у тренутном упутству разговарали о карактеристика евидентирања, њен потенцијал, могућности отклањања грешака и још много тога.
Понекад се евидентирање сматра режијом постојећег механизма за креирање скрипти, али стручњаци сматрају да је то једна од најбољих пракси ако се користи у тачном пропорцији због следећих предности:
Предности пријављивања у селенске скрипте:
- Омогућава потпуно разумевање извршавања тест пакета
- Поруке дневника могу се чувати у спољним датотекама за контролу након извршења
- Евиденције су изузетан помоћник у отклањању грешака у извршавању програма
- Дневници се такође могу прегледати како би се утврдило здравствено стање апликације од стране заинтересованих страна
Шта ћете научити:
Лог4ј - АПИ за евидентирање заснован на Јави
Прелазећи на техничке детаље о евидентирању, разговарајмо о пореклу АПИ-ја који бисмо користили током лог4ј туториал за генерисање дневника. Лог4ј је резултат заједничких напора људи на Сецуре Елецтрониц Маркетплаце фор Еуропе да развију услужни програм који ће нам помоћи у генерисању евиденција и стога је лог4ј дошао у средиште пажње 1996. године. Лог4ј је алат отвореног кода и лиценциран под ИБМ јавном лиценцом.
Три су главне компоненте које чине примену лог4ј. Ове компоненте представљају детаље о нивоу евиденције, форматима поруке дневника у којима би се приказивале и њиховим механизмима чувања.
Саставници Лог4ј
- Сјекачи
- Додаци
- Лаиоутс
# 1) Дрвосече
Следећи кораци треба да буду урађени како би се у пројекат применили логгери.
Корак 1 : Креирање инстанце класе Логгер
Корак 2 : Дефинисање нивоа дневника
Класа дрвосјеча - То је услужни програм заснован на јави који је већ применио све генеричке методе тако да нам је омогућено коришћење лог4ј.
Нивои дневника - Нивои трупаца су у народу познати као методе штампања. Они се користе за штампање дневничких порука. Постоји првенствено пет врста нивоа дневника.
- грешка ()
- упозорити ()
- инфо ()
- отклањање грешака ()
- Пријава()
Дакле, да бисмо могли да генеришемо евиденције, све што треба да урадимо је да позовемо било који од метода штампања преко инстанце дневника. Имаћемо шири увид у то током фазе имплементације.
# 2) Додаци
Сад кад знамо како да генеришемо ове дневнике, следећа ствар која би требало да нам искрсне у глави је где могу да погледам те дневнике? Одговор на ово питање лежи у дефиницији „додатака“.
Додаци се доследно користе за одређивање извора података / медијума где треба да се генеришу евиденције. Опсег извора података протеже се од различитих спољних медија као што су конзола, ГУИ, текстуалне датотеке итд.
# 3) Изгледи
Понекад корисник жели да се одређене информације додају или додају уз сваку изјаву дневника. На пример, желим да одштампам временску ознаку заједно са својим извештајем о евиденцији. Дакле, такви захтеви могу се постићи помоћу „Лаиоутс“.
Лаиоутс су услужни програм који омогућава кориснику да се одлучи за жељени формат у којем ће се евиденција приказивати. Додаци и распоред имају чврсту везу. Стога смо обавезни да мапирамо сваког од прилога са одређеним распоредом.
Имајте на уму да је корисник подстакнут да дефинише више додатака, а свака мапа има различит распоред.
Сада када смо свесни основа лог4ј и његових компоненти, усредсредићемо се на феномен примене.
Да разумемо читав процес имплементације корак по корак.
Инсталација / подешавање
За инсталацију и подешавање размотрили бисмо пројекат „Леарнинг_Селениум“ који смо већ креирали у ранијим сесијама ове серије.
Корак 1 : Први и најважнији корак је преузимање најновијег јар-а за лог4ј АПИ. Теглу можете лако пронаћи на њеном званичном веб месту за дистрибуцију - “ хттп://логгинг.апацхе.орг/лог4ј/1.2/довнлоад.хтмл ”.
Корак 2 : Следећи корак је конфигурисање путање изградње и обезбеђивање лог4ј.јар као спољне библиотеке.
Имплементација
Евидентирање помоћу лог4ј може се имплементирати и конфигурисати на два начина:
- Програмски путем скрипте
- Ручно путем датотека за конфигурацију
Обе горе поменуте методе конфигурације имају и предности и недостатке. У овом упутству размотрићемо ручно конфигурисање лог4ј путем датотека за конфигурацију на основу његове лакоће и једноставности. Конфигурациона датотека је још једна КСМЛ датотека за конфигурисање артефаката повезаних са лог4ј.
Стварање датотеке лог4ј.кмл
Корак 1 . Направите датотеку лог4ј.кмл. Копирајте и залепите доњи код у конфигурациону датотеку.
Водич кроз конфигурациону датотеку
цонсолеАппендер
Додатак конзоле користи се за испис извештаја дневника на конзоли.
додавач датотеке
Додатак датотеке користи се за испис извештаја дневника у спољној датотеци. Корисник је подстакнут да постави вредност укључивања и искључивања за додану ознаку која ће рећи систему да дода и евидентира изјаве у претходно створену или да препише претходно креиране дневнике и генерише све нове евиденције.
'append' value= 'false' />
Вредност параметра датотеке постављена је на одређено место како би се систем обавестио да креира предвиђену датотеку дневника на наведеној локацији. Такође специфицирамо име датотеке дневника у оквиру параметра вредности.
Изглед
Као што је разматрано у раним одељцима овог водича, распореди се користе за специфицирање механизма приказивања за изјаве дневника. Лог4ј пружа разне обрасце распореда. Корисник се користи да наведе жељени образац у вредности параметра ЦонверсионПаттерн.
Резултат горњег изгледа требало би да буде отприлике:
01-07-2014 12:56:32 ИНФО (ГмаилЛогин): Пример поруке дневника
У горњем излазу:
- Прво поље - Датум извршења
- Друго поље - Тачно време у хх: мм: сс у коме је извршен тест корак
- Треће поље - Једно од нивоа дневника
- Четврто поље - Назив класе теста
- Пето поље - Дневник поруке
Корак 2 . Чим завршимо са креирањем датотеке лог4ј.КСМЛ, следећи корак је стављање датотеке лог4ј.КСМЛ у основну фасциклу / основни директоријум пројекта.
Примена на нивоу програма
3. корак : Следећи корак је употреба било ког конфигуратора за конфигурисање и рашчлањивање датотеке лог4ј.кмл.
Синтакса:
package com.logExample; import org.apache.log4j.xml.DOMConfigurator; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.RunWith; import org.junit.runner.notification.Failure; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ Demo.class }) public class TestSuite { /** * Setup method to set system property for log file name */ @BeforeClass public static void Setup() { // loading log4j.xml file DOMConfigurator.configure('log4j.xml'); } /** * @param args */ public static void main(String() args) { Result result = JUnitCore.runClasses(TestSuite.class); for (Failure failure : result.getFailures()) { System.out.println('
TEST NAME: ' + failure.getTestHeader()); System.out.println('
ERROR: ' + failure.getMessage() + '
'); System.out.println(failure.getTrace()); System.exit(1); } } }
Белешка : Евиденције се могу применити на нивоу класе, уместо на нивоу програмског пакета. Све што треба да урадите је да унесете потребне промене у тест класу, а не у тестну скупину.
4. корак : Следећи корак је стварање тест класе „ГмаилЛогин.јава“ у оквиру пројекта. Примените Гмаил функцију за пријављивање унутар класе.
Корак 5 : Следећи корак је увоз класе дневника како бисте могли да имплементирате извештаје дневника.
Синтакса:
импорт орг.апацхе.лог4ј.Логгер;
шта је алфа и бета тестирање
Корак 6 : Следећи корак у процесу је инстанцирање објекта класе Логгер.
Синтакса:
// Иницијализација објекта за дневник
статички Трупци Пријава Логгер.гетЛоггер (Демо. класа .гетНаме ());
Корак 7 : Горе креирана променљива дневника типа Логгер користила би се у целој тест класи за генерисање извештаја дневника. Погледајте следећи код за исти.
Синтакса:
@Test public void testGmailLogin() throws Exception{ // enter a valid email address driver.findElement(By.id('Email')).sendKeys('TestSelenium1607@gmail.com'); log.info('Entered a valid Email Address.'); // enter a invalid password driver.findElement(By.id('Passwd')).sendKeys('InvalidPassword'); log.info('Entered a invalid Password.'); // click on sign in button driver.findElement(By.id('signIn')).click(); log.info('Clicked on the Sign In Button.'); try{ //Verify the home page assertTrue('Verification Failed: User successfully landed on the Home Page.', driver.getTitle().equals('Gmail')); log.info('Verified that the user landed on the Home Page.'); } catch (Exception e) { log.error('Unsuccessfull Login.'); } }
Резултат у датотеци дневника
01-07-2014 12:56:11 ИНФО (ГмаилЛогин): Отпремање датотеке у систем: ФилеЕкампле.ткт
01-07-2014 12:56:11 ИНФО (ГмаилЛогин): Слање промена
01-07-2014 12:56:15 ГРЕШКА (ГмаилЛогин): Неуспешно пријављивање.
АЖУРИРАЊЕ марта 2020
Трупци
Евиденција је порука коју бележимо или генеришемо за сваку трансакцију коју обавимо. Можемо анализирати евиденције да бисмо проверили шта је пошло тачно или погрешно. Претпоставимо ако се било који систем нагло затвори, анализирајући евиденције, можемо ући у основни узрок квара.
Тако се евиденције генеришу у сваком развојном циклусу. На исти начин, такође можемо да генеришемо евиденције у нашем Селениум коду за тестирање пре и после сваког стања теста или изјаве о тестирању, како бисмо проверили да ли сви раде како се очекује.
лог4ј Фрамеворк
Да бисмо генерисали ове датотеке дневника у коду Селениум, користимо лог4ј фрамеворк који пружа Апацхе. Помоћу овог оквира можемо да генеришемо наше прилагођене дневнике.
Кликните овде да бисте преузели лог4ј јар из спремишта Мавен.
Евиденције можемо генерисати на 2 начина:
- Коришћење датотеке лог4ј.пропертиес
- Коришћење датотеке лог4ј.кмл
Ове датотеке ће садржати конфигурацију о томе какву евиденцију желите да генеришете. Можете користити било који од њих. Ако желите да користите оба, тада ће лог4ј.кмл имати већи приоритет. Пожељни начин генерисања дневника је коришћење датотеке својстава, па ћемо овде истражити више о генерисању само кроз датотеку својстава.
Имплементација лог4ј
Преузмите датотеку јар4 лог4ј са горње путање и додајте је у путању изградње пројекта. Направите датотеку лог4ј.пропертиес и додајте датотеку својстава паралелно вашој изворној фасцикли када користите самосталну јава апликацију.
Датотека Лог4ј.пропертиес је конфигурациона датотека која чува вредности у пару кључ / вредност.
Садржи 3 главне компоненте:
- Сјекачи: Снима информације о евидентирању.
- Додаци : Објавите податке евидентирања на другом преферираном одредишту као што су конзоле, датотеке, утичнице, евиденције догађаја НТ итд.
- Лаиоутс : Форматирање података евидентирања у различитим стиловима као што су ХТМЛ, КСМЛ Лаиоут итд.
Синтакса датотеке лог4ј.пропертиес
# 1) Дефинишите основни записник са нивоом евиденције ИНФО и додатком Кс (додавач могу бити било које конзоле, датотеке, сокети, евиденције догађаја НТ).
log4j.rootLogger = INFO, X
#два) Подесите додатак под називом Кс да буде додавач датотека.
log4j.appender.X = org.apache.log4j.FileAppender
# 3) Дефинишите изглед за Кс додавач.
log4j.appender.X.layout = org.apache.log4j.PatternLayout log4j.appender.X.layout.conversionPattern = %m%n
лог4ј.пропертиес Пример
Направите датотеку лог4ј.пропертиес, позивајући се на горњу синтаксу:
# иницијализујте роот логгер нивоом ИНФО и одштампајте га у конзоли помоћу стдоут и фоут.
log4j.rootLogger=INFO,stdout,fout
# додајте ЦонсолеАппендер у записник стдоут за писање на конзолу.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# користите дефинисани образац распореда једноставног формата поруке који је% м% н, а који исписује евидентирање порука у новом реду.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%m%n
# додајте ФилеАппендер у записник.
log4j.appender.fout=org.apache.log4j.FileAppender
# ДОДАТАК датотеке прилога дефинисан је као орг.апацхе.лог4ј.ФилеАппендер. Записује у датотеку названу СофтвареТестингХелп.
log4j.appender.fout.File=SoftwareTestingHelp.log
# користите детаљнији образац поруке.
log4j.appender.fout.layout=org.apache.log4j.PatternLayout log4j.appender.fout.layout.ConversionPattern=%p %d{ISO8601} %r %c (%t) %m%n
Различити нивои сече
- ДЕБУГ
- ИНФО
- УПОЗОРЕЊЕ
- ГРЕШКА
- ФАТАЛ
Сваки ниво има свој приоритет. Претпоставимо да ако користимо ниво „ДЕБУГ“, он ће евидентирати све поруке нивоа као што су ИНФО >> ВАРН >> ЕРРОР >> ФАТАЛ.
Претпоставимо да ако користимо ниво “ЕРРОР”, он ће занемарити ДЕБУГ >> ИНФО >> ВАРН и евидентират ће само ЕРРОР >> ФАТАЛ.
На свим овим нивоима морамо да дефинишемо у нашој датотеци својстава. Евиденције ће се генерисати, овисно о нашој конфигурацији.
Примена дневника за исти горе наведени пример:
Корак 1: Направите објекат за класу Логгер.
final static Logger logger = Logger.getLogger(Frame.class);
Горе наведени метод помаже у добијању објекта евиденције. Ова метода ће као аргумент узети или класу или име класе. Користећи овај објекат дневника, можете генерисати прилагођене дневнике.
У овом примеру смо се позвали на Апацхе лог4ј фрамеворк, ако користите ТестНГ фрамеворк, онда морате да користите класу ТестНГ лог.
Овде смо покушали да генеришемо евиденцију, без примене датотеке својстава.
Ниједна евиденција се не генерише ни у конзоли ни у било којој датотеци дневника која је креирана. У конзоли је примљена грешка јер датотека дневника није правилно имплементирана. Да бисмо је применили, морамо користити класу ПропертиЦонфигуратор. Пратите 2. корак.
Корак 2: Иницијализујте датотеку конфигуратора својстава и проследите аргумент као име датотеке својстава лог4ј.
ПропертиЦонфигуратор.цонфигуре („лог4ј.пропертиес“);
Комплетан код за генерисање датотека дневника:
package com.wordpress.pages; import java.util.List; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.junit.Assert; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class Frame { static WebDriver driver; final static Logger logger = Logger.getLogger(Frame.class); @Test public void Test(){ PropertyConfigurator.configure('log4j.properties.txt'); System.setProperty('webdriver.chrome.driver', 'D:\New folder\exe\chromedriver.exe'); logger.debug('Debug this path for chrome path issue'); driver = new ChromeDriver(); logger.info('Chrome driver is up and running'); driver.get('http://www.dwuser.com/education/content/the-magical-iframe-tag-an-introduction/'); logger.warn('Url is not loaded properly'); //identifying the frame using locator or say using webelement driver.switchTo().frame(driver.findElement(By.xpath('//div(@id='eduFooterWrap')//iframe(1)'))); logger.error('Frame is not available'); driver.findElement(By.xpath('//input(@name='name')')).sendKeys('SoftwareTestingHelp.com'); logger.fatal('Message not entered'); } }
Датотека својстава:
Закључак
У тренутном упутству смо се фокусирали на техничке импликације током примене евидентирања у оквиру. Искористили смо услужни програм лог4ј за спровођење евидентирања. Разговарали смо о основним компонентама које чине лог4ј из перспективе употребљивости. Помоћу додатака и распореда корисник може изабрати жељени формат / образац евидентирања и извор / локацију података.
У овом упутству истражујемо зашто се евиденције користе у нашем тесту и покривају лог4ј фрамеворк, као и примена лог4ј фрамеворк-а у Селениум-у за генерисање дневника.
Следећи водич # 27 : У предстојећем водичу разговарали бисмо о неким напреднијим темама везаним за ефикасно скриптирање и решавање сценарија где се од корисника захтева да обрађује догађаје миша и тастатуре. Штавише, разговарали бисмо и о томе како на листу сместити више од једног веб елемента.
Препоручено читање
- Дубински водичи за помрачење за почетнике
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Ефикасни сценарији за скриптирање и решавање проблема са селенијем - Водич за селениј # 27
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца
- 30+ најбољих водича за селен: научите селен на стварним примерима
- Како лоцирати елементе у Цхроме и ИЕ прегледачима за изградњу скрипти за селен - Водич за селен # 7
- Примена наше прве скрипте за ВебДривер - Водич бр. 10 за Селениум ВебДривер
- Целокупно подешавање и инсталирање ВебДривер-а помоћу програма Ецлипсе - Водич за селен бр. 9