Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Человекопонятные отчёты

1,416 views

Published on

Доклад на конференции Selenium Camp 2012.
http://seleniumcamp.com/program/#quick-reliable-tests
Видео: http://video.yandex.ru/users/xpinjection/view/119/#hq
Текст: http://www.deepshiftlabs.com/sel_blog/?p=1930&lang=ru

Published in: Technology
  • Be the first to comment

Человекопонятные отчёты

  1. 1. Selenium Camp 2012Человекопонятные отчёты Deep Shift Labs 25 февраля, 2012 Киев, Украина
  2. 2. Дмитрий Якубовский Deep Shift Labs Java, PHP + тестировщик bear@deepshiftlabs.com @deep_bear
  3. 3. Удобные отчёты http://www.flickr.com/photos/telemax/3210586934/
  4. 4. Для кого отчёты?разработчик тестировщик клиент менеджер
  5. 5. 1 Отчёты для разных людей http://www.flickr.com/photos/franco_coluzzi/4106012682
  6. 6. Действия--открыть страницуdriver.open(MY_URL);--заполнить поляdriver.type(LOGIN_LOCATOR, LOGIN);driver.type(PASSW_LOCATOR, PASSW);--нажать кнопкуdriver.click(SUBMIT_LOCATOR);--есть ‘logout’?assert(driver.isElementPresent(LOUT_LOCATOR);
  7. 7. Повторение ошибки =повторение действий
  8. 8. Объединение действийdriver.open(MY_URL);driver.type(LOGIN_LOCATOR, ‘admin’); login()driver.type(PASSW_LOCATOR, PASSW);driver.click(SUBMIT_LOCATOR);assert(driver.isElementPresent(LOUT_LOCATOR); ---- выполнение тестаdriver.click(LOGOUT_LOCATOR);
  9. 9. Дробление действий driver.isElementPresent()our.click() driver.click()
  10. 10. 2 Иерархия действий http://www.flickr.com/photos/baggis/3576064503
  11. 11. 3 Скриншоты до и после ошибки /http://www.flickr.com/photos/28481088@N00/1032365178
  12. 12. assert() vs log() assert() log() TestNG log4j TRACE DEBUGFATAL OK INFO FATAL WARN ERROR
  13. 13. Форма логинаUser name:Password: ******* Remember me Submit
  14. 14. Уровни ошибокno label: WARNno checkbox: ERRORnot logged in: FATAL
  15. 15. Беспокоить только по FATAL http://www.flickr.com/photos/edwin11/500787776
  16. 16. 4 Различать уровни ошибок http://www.flickr.com/photos/go_greener_oz/3046225225
  17. 17. log4j, FATALfatal:90 - FATAL Comparing position of[2A0733] with position of [2A0733]fatal:90 - FATALclearQuestionList.getQuestionDatabaseIdByTitle normal end 5-4
  18. 18. log4j, TRACEfatal:90 - FATAL clearQuestionList.getQuestionDatabaseIdByTitle start 5-3debug:94 - DEBUG EVENT (STARTED): Delete question [button ID=del_quest_3890], target: Filter-Sort-Formdebug:94 - DEBUG EVENT (STARTED): clickWithConfirmation, target: del_quest_3890debug:94 - DEBUG EVENT (STARTED): isElementPresent, target: del_quest_3890info:78 - INFO (ID = 580) EVENT (OK): isElementPresent, target: del_quest_3890 Values: Actual: true;Screenshots: screen_170446632_010212.png (before) screen_170446632_010212.png (after)debug:94 - DEBUG EVENT (STARTED): getScreenshot, target: screen_170448116_010212.pnginfo:78 - INFO (ID = 581) EVENT (OK): getScreenshot, target: screen_170448116_010212.png Screenshots:screen_170448116_010212.png (after)info:78 - INFO (ID = 579) EVENT (OK): clickWithConfirmation, target: del_quest_3890Screenshots:screen_170446632_010212.png (before) screen_170448116_010212.png (after)debug:94 - DEBUG EVENT (STARTED): waitForCondition, target:(typeof(selenium.browserbot.getCurrentWindow().jQuery) != undefined &&selenium.browserbot.getCurrentWindow().jQuery.active == 0)debug:94 - DEBUG EVENT (STARTED): getScreenshot, target: screen_170448536_010212.pnginfo:78 - INFO (ID = 583) EVENT (OK): getScreenshot, target: screen_170448536_010212.png Screenshots:screen_170448536_010212.png (after)info:78 - INFO (ID = 582) EVENT (OK): waitForCondition, target:(typeof(selenium.browserbot.getCurrentWindow().jQuery) != undefined &&selenium.browserbot.getCurrentWindow().jQuery.active == 0)Screenshots: screen_170448116_010212.png (before)screen_170448536_010212.png (after)debug:94 - DEBUG EVENT (STARTED): isAlertPresent, target: alertinfo:78 - INFO (ID = 584) EVENT (OK): isAlertPresent, target: alertValues: Actual: false; Screenshots:screen_170448536_010212.png (before) screen_170448536_010212.png (after)info:78 - INFO (ID = 578) EVENT (OK): Delete question [button ID=del_quest_3890], target: Filter-Sort-FormScreenshots: screen_170446632_010212.png (before) screen_170448536_010212.png (after)fatal:90 - FATAL clearQuestionList.getQuestionDatabaseIdByTitle normal end 5-4debug:94 - DEBUG EVENT (STARTED): getAttribute, target: //*/a[contains(text(),[[T]]2A0733-)]@hrefinfo:78 - INFO (ID = 585) EVENT (OK): getAttribute, target: //*/a[contains(text(),[[T]]2A0733-)]@hrefValues:Actual: question.php?q_id=3892;
  19. 19. 5 Подробный, но легкочитаемый http://www.flickr.com/photos/matins/3169353956/
  20. 20. 1 Разные виды отчётов2 Иерархия действий3 Скриншоты до и после ошибки4 Уровни ошибок5 Подробный, но легкочитаемый
  21. 21. Решение проблем http://www.flickr.com/photos/rwangsa/452128709/
  22. 22. Наш отчёт
  23. 23. Наш отчёт Фильтр уровней, иерархииСписок Собственно событиятестов (со всеми деталями и иерархией)
  24. 24. 1 Разные виды отчётов Собранные данныевстроенный генератор промежуточный формат (xml, csv, DB) внешний генератор просмотрщик отчёт
  25. 25. Класс Event Имя Локатор Скриншот ID Статус ВремяИсключение Результат
  26. 26. Использование событий{ event1 = new Event(“Login”) ; ----- тест логина ----- event1.closeOK();}
  27. 27. 2 Группировка действий { event1 = new Event(“Login”) ; event(“open”); event(“type”); ----- тест логина event(“type”); event(“click”); event(“check Link”); event1.closeOK(); }
  28. 28. 3 Максимально подробный отчёт Каждое действие Selenium = EventОбёртка для каждого метода драйвера
  29. 29. Обёрткаevent = new Event (“isTextPresent”, text);If (driver. isTextPresent(text)) { try event.closeOK(“true”); return true;}event.closeOk(“false”);return false;
  30. 30. 4 Скриншоты до и после Страницу изменяют:waitForPageToLoad() select()waitForFrameToLoad() selectWindow()typeText() waitForCondition()focus() open()click() click()doubleClick()
  31. 31. Действие click() new Event(“click”); isElementPresent();lastScrFilename click(); getScreenshot(); event.close();
  32. 32. 5 Разные виды отчётов HTML + CSS + Javascript ! http://www.flickr.com/photos/tambako/5690573629
  33. 33. Недостатки• Нужно следить за закрытием событий• Дополнительный код• Избыточные скриншоты• Сложность внедрения
  34. 34. Преимущества• Удобен для всех• Иерархия• Скриншоты до и после• Фильтрация по уровням• Подробности/в общем
  35. 35. Планы• Скриншоты• Подсветка• Перемотка• Агрегация
  36. 36. Nerrvana a(){} Selenium RC b(){} Selenium Hub Selenium RCa(){} … …b(){} a(){} Selenium RC b(){} Selenium Hub Selenium RC
  37. 37. Агрегация отчётовТесты на нескольких браузерах параллельноОтчёты:- Кроссбраузерность ошибки- Скриншоты side-by-side- Timings side-by-side
  38. 38. Вопросыhttp://deepshiftlabs.com/reports (пример отчётов online) bear@deepshiftlabs.com (не стесняйтесь!)

×