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

Post on 08-Feb-2017

1,979 views 10 download

transcript

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

Спасибо