Winium — это как Selenium, только под
Windows
Головин Глеб
О себе
•  автоматизация обеспечения качества
•  проект Winium
•  курс по тестированию для студентов (Новосибирск)
•  @skyline­gleb
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
Winium для Windows Phone
github.com/2gis/Winium.StoreApps
Тестовая инфраструктура
Головин Глеб
g.golovin@2gis.ru 
github.com/2gis/Winium
Спасибо

Winium — это как Selenium, только под Windows