SlideShare a Scribd company logo
1 of 10
Gemini
Автоматизация UI
Artem Ch.
Возможности
• параллельный запуск тестов в различных браузерах
• тестирования различных состояний элемента веб-страницы
• тестирования картинки — сравнение с эталоном (
игнорирование заданных областей при сравнении
изображений )
• учет свойств box-shadow and outline при вычислении
позиции и размера элемента?
• быстрый перезапуск только failed тестов
• сбор статистики покрытия css-кода тестами
Тестовый набор состояния
кнопок
Немного расскажу о том, как он работает. Вы
описываете несколько состояний блока. Для
каждого состояния можно указать список действий,
которые необходимо выполнить для перехода в
него.
Схема состояний кнопки
• Button: plain -> hover -> pressed -> loading
Вот так предыдущая абстрактная
схема будет выглядеть для
конкретной кнопки:
Create first suite
setWindowSize
.setUrl('/PrivacyStatement')
.setCaptureElements(captureElement)
.capture('mobile', function(actions, find) {
actions.setWindowSize(screenSizes.mobile.width, screenSizes.mobile.height);
})
.capture('tablet portrait', function(actions, find) {
actions.setWindowSize(screenSizes.tabletPortrait.width, screenSizes.tabletPortrait.height);
})
.capture('tablet landscape', function(actions, find) {
actions.setWindowSize(screenSizes.tabletLandscape.width,``screenSizes.tabletLandscape.height);
})
.capture('desktop', function(actions, find) {
actions.setWindowSize(screenSizes.desktop.width, screenSizes.desktop.height);
});
});
Config
Вопросы
А.

More Related Content

Similar to Gemini presentation

Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»e-Legion
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneCodeFest
 
Систематизация экспрешнов в IE
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IERoman Komarov
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейPaul Stashevsky
 
automation is iOS development
automation is iOS developmentautomation is iOS development
automation is iOS developmentIvan Trifonov
 
Арсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияАрсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияArseny Zarechnev
 
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) COMAQA.BY
 
Арсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияАрсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияArseny Zarechnev
 
Автоматизируем GUI тесты на питоне
Автоматизируем GUI тесты на питонеАвтоматизируем GUI тесты на питоне
Автоматизируем GUI тесты на питонеSQALab
 
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"Yandex
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverIgor Khrol
 
Unit tests final
Unit tests finalUnit tests final
Unit tests finalcorehard_by
 
XPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriverXPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriverИлья Кожухов
 
Automating Canvas: difficult but possible
Automating Canvas: difficult but possibleAutomating Canvas: difficult but possible
Automating Canvas: difficult but possibleCOMAQA.BY
 

Similar to Gemini presentation (20)

Performance optimisation in javascript
Performance optimisation in javascriptPerformance optimisation in javascript
Performance optimisation in javascript
 
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows Phone
 
Систематизация экспрешнов в IE
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IE
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностей
 
automation is iOS development
automation is iOS developmentautomation is iOS development
automation is iOS development
 
Арсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияАрсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложения
 
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
 
Devtools
DevtoolsDevtools
Devtools
 
Арсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияАрсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложения
 
Автоматизируем GUI тесты на питоне
Автоматизируем GUI тесты на питонеАвтоматизируем GUI тесты на питоне
Автоматизируем GUI тесты на питоне
 
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
 
Unit тестирование
Unit тестированиеUnit тестирование
Unit тестирование
 
Unit tests final
Unit tests finalUnit tests final
Unit tests final
 
XPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriverXPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriver
 
Automating Canvas: difficult but possible
Automating Canvas: difficult but possibleAutomating Canvas: difficult but possible
Automating Canvas: difficult but possible
 

Gemini presentation

  • 2. Возможности • параллельный запуск тестов в различных браузерах • тестирования различных состояний элемента веб-страницы • тестирования картинки — сравнение с эталоном ( игнорирование заданных областей при сравнении изображений ) • учет свойств box-shadow and outline при вычислении позиции и размера элемента? • быстрый перезапуск только failed тестов • сбор статистики покрытия css-кода тестами
  • 3. Тестовый набор состояния кнопок Немного расскажу о том, как он работает. Вы описываете несколько состояний блока. Для каждого состояния можно указать список действий, которые необходимо выполнить для перехода в него.
  • 4. Схема состояний кнопки • Button: plain -> hover -> pressed -> loading Вот так предыдущая абстрактная схема будет выглядеть для конкретной кнопки:
  • 6. setWindowSize .setUrl('/PrivacyStatement') .setCaptureElements(captureElement) .capture('mobile', function(actions, find) { actions.setWindowSize(screenSizes.mobile.width, screenSizes.mobile.height); }) .capture('tablet portrait', function(actions, find) { actions.setWindowSize(screenSizes.tabletPortrait.width, screenSizes.tabletPortrait.height); }) .capture('tablet landscape', function(actions, find) { actions.setWindowSize(screenSizes.tabletLandscape.width,``screenSizes.tabletLandscape.height); }) .capture('desktop', function(actions, find) { actions.setWindowSize(screenSizes.desktop.width, screenSizes.desktop.height); }); });
  • 8.
  • 9.

Editor's Notes

  1. Gemini разработан в Яндексе Gemini — инструмент с открытым исходным кодом, позволяющий автоматизировать регрессивное тестирование отображения веб-страниц.
  2. Gemini снимает области экрана с элементами на странице и сравнивает их с эталонными изображениями элементов. Если изображения не совпадают, их отличия указываются в отчёте. Тесты разрабатываются на JavaScript и запускаются в реальных браузерах, используя протокол Selenium WebDriver. С Gemini можно работать как в командной строке, так и через графический-интерфейс gemini-gui.
  3. Вот так предыдущая абстрактная схема будет выглядеть для конкретной кнопки:
  4. - Для начала нам нужно создать наш тестовый набор. Это делается командой gemini.suite. Мы передаем имя набора и функцию, в которой в дальнейшем будем производить настройку этого набора. Весь дальнейший код, который я буду приводить в примерах, происходит внутри этой функции. Первый шаг настройки — задание URL, с которого мы будем снимать скриншоты. Далее нам нужно задать регион для съемки. В примере элемент только один, но их может быть сколько угодно. Область захвата определяется как минимальный прямоугольник, в который попадают все перечисленные элементы. Закончив с настройкой, можно переходить к захвату скриншотов. Наше первое состояние — исходное (plain). нам не надо выполнять никаких действий, просто сделать захват скриншота командой capture, которой мы передаем имя состояния.
  5. Также нам нужно создать файл конфигурации. В нем мы задаем корневой URL, от которого будут рассчитаны относительные URL, задаваемые в тестах. Второй параметр — это URL для Selenium Grid (так как gemini основан на Selenium, использование Grid обязательно). Ну и список браузеров, в которых мы будем тестировать. Конфиг выглядит приблизительно так: Задачей корневой URL от которого мы будем резолвить все углы, указанные в тесты АДРЕС selenium grid - если нужно запускать во многих браузерах и конфиги браузеров