Selenium Camp, 28.02.14
Yandex experience in screenshot based testing
Леонид Руденко
lead QA engineer
@leonsabr [email protected] http://habrahabr.ru/company/yandex/blog/200968/
Серп
Колдунщик
Колдунщик
Вы тестируете представление?
Вы сравниваете скриншоты?
Знаете проблемы?
План
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Обычные функциональные тесты
Слишком долго
«Сдвиг на пиксель – откатываем!»
Сравнение скриншотов
В основе
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Проблемы
• Серп – «шумная» страница
• Кроссбраузерность
• Как сделать хороший отчет?
Страница выдачи изменчива
Страница выдачи изменчива
Так проще!
Selenium Grid
Специальная олимпиада браузеров
Opera: нужен скриншот?
26
Opera: нужен скриншот?
window.open(! "http://www.yandex.ru", ! "ya",! "height=400,width=1200”!);!
Специальная олимпиада браузеров
IE
Windows
Потерянные клики
Специальная олимпиада браузеров
Функциональные тесты
WebDriver driver = ...;!driver.get()/findElement()/...!...!assertThat(...);!
Функциональные тесты
WebDriver driver = ...;!driver.get()/findElement()/...!...!assertThat(...);!driver.get()/findElement()/...!...!assertThat(...);!!
Функциональные тесты + скриншот
WebDriver driver = ...;!driver.get()/findElement()/...!...!takeScreenshot(element);!!!!!
Как представить результаты?
Как представить результаты?
• все важное – наверх
• скриншоты не прятать
• помочь в считывании диффа
• разделять диффы скриншотов и broken
• устаревшие сценарии не интересны
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Кунсткамера: поехал текст
Кунсткамера: изображения
Кунсткамера: CSS
Кунсткамера: данные
Кунсткамера: переводы
В чем профит?
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Стоит обратить внимание, если
• нужно тестировать верстку
Стоит обратить внимание, если • нужно тестировать статическую графику
Стоит обратить внимание, если
• у сервиса есть «темы оформления»
Твой сервис?
Что может доставить проблемы?
• изменчивость сервиса
Что может доставить проблемы?
• нужно больше браузеров
Что может доставить проблемы?
• случайные ошибки (IE, фокус, …)
Что было дальше: весь серп
Что было дальше: CI
Вопросы?