Winium — это как Selenium, только под Windows
Transcript of Winium — это как Selenium, только под Windows
Winium — это как Selenium, только подWindows
Головин Глеб
О себе
• автоматизация обеспечения качества
• проект Winium
• курс по тестированию для студентов (Новосибирск)
• @skylinegleb
2
2ГИС — электронная карта исправочник
• конечные продукты
• картография
• справочник
• реклама
3
WEB
Тестируем
WEB
Автоматизируем
Selenium для веба
WebDriverпротокол
Appiumсервер
Appium для мобилок
Инфраструктура
Тестовая инфраструктура
Автоматизация Windows-приложений
• ProtoTest.Golem
• Coded UI
• TestComplete
• Ranorex
• forcedotcom/windowsphonedriver
• Expensify/WindowsPhoneTestFramework
• ...
14
Требования к инструменту
• Selenium Based
• OpenSource
16
Selenium-совместимость
• единое кроссплатформенное решение
• подходит под нашу инфраструктуру
17
Открытый исходный код
• исправление ошибок
• добавление новых фич
• запилить под себя
18
Поддерживаемые платформы
• Windows Desktop (WPF, WinForms)
• Windows Phone
21
WebDriverпротокол
МагияWinium Driver
Тестируемаясистема
Архитектура Winium
Winium — набор инструментов
• Winium.Desktop https://github.com/2gis/Winium.Desktop
• Winium.StoreApps https://github.com/2gis/Winium.StoreApps
23
Winium для Desktop
Запуск приложения
from selenium import webdriver
driver = webdriver.Remote (
command_executor ='http://localhost:9999',
desired_capabilities=
{'app' : 'C:/windows/system32/calc.exe'})
26
Поиск элементов
Локаторы поиска элементов
Локатор Метод
AutomationId find_element_by_id
Name find_element_by_name
ClassName find_element_by_class_name
XPath find_element_by_xpath
28
Инспектор элементов интерфейса
Драйвер — весь рабочий стол
Работа с элементами
Реализованы основные команды
Действие Команда
Нажать click()
Получить свойство get_attribute('attr-name')
Получить текст text()
Включен? is_enabled()
... .. .
32
Переключение окна в фокус
win_handle = window.get_attribute(' NativeWindowHandle ')
driver. switch_to.window (win_handle)
33
Создание скриншота
driver. get_screenshot_as_file ('filename')
driver. get_screenshot_as_base64 ()
34
Запуск тестов
Параллелизация
Правило параллельного запуска
1 МАШИНА = 1 ПРИЛОЖЕНИЕ
39
Параллельный запуск тестов
selenium-gridрешение
Параллельный запуск тестов
Настройка тестового окружения
Необходим активный рабочий стол
• настроить autologon
• запретить отключение дисплея
• запретить сон
• RDP = перезагрузка
42
Запуск build-агента
Служба не может запускать UI
• использовать планировщик заданий
• запускать при входе пользователя в систему
• права администратора
43
Подсматриваем за тестами
• System Center App Controller
• VNC (клиент/сервер)
• VLC для записи видео
44
Тестовая инфраструктура
Головин Глеб
github.com/2gis/Winium
Спасибо