2. О себе
• QA Tech Lead @ B2B Soft
• Automation Inspirer @ B2B Soft
• ISTQB® Certified Tester, Foundation Level
• 7+ лет опыта в тестировании
• 3+ лет опыта в тест менеджменте
• 1+ лет опыта в автоматизации
Контакты:
e-mail: shurik.zinovyev@gmail.com
skype: alexandr.zinoviev
Blog: azinoviev.com
2
3. План
• Проблема
• Особенности тестирования Desktop приложений
• Выбор framework
• Как мы пишем тесты
• Сложности
• Как их решать
• Наш результат
3
9. Особенности тестирования Desktop
• Инсталляция:
• Обновление
• Новая установка
• Работа с внешними устройствами
• Кроссплатформенное тестирование
• Довольно низкая скорость работы
9
10. Особенности нашего приложения
• Приложение на рынке уже 15 лет
• За это время сменилась не одна команда
• Каждая команда привносила в разработку что-то свое
• Отсутствие code convention
• Приложение довольно хрупкое
• Не зависимо от изменений регрессия проходит через
все приложение
10
19. Python + Selenium + Winium: плюсы
• Python – легкий порог входа
• Большое количество библиотек для Python
• Автоматизация на Python популярнее чем на С#
• Selenium
• Полный контроль написания тестов
• Паттерн Page Object
19
20. Python + Selenium + Winium: минусы
• Не стабильный драйвер Winium
• Не все возможности поиска элементов поддерживаются –
Winium не поддерживает все возможности Selenium
20
21. Python + Pywinauto: плюсы
• Python – легкий порог входа
• Большое количество библиотек для Python
• Автоматизация на Python довольно популярна
• Pywinauto – библиотека для работы с Desktop
• Полный контроль написания тестов
• Паттерн Page Object
21
22. Python + Pywinauto: минусы
• Не ко всем элементам можно достучаться – но это скорее
сложности имплементации древнего приложения
• Очень мало информации о Pywinauto на просторах
интернета
22
24. Как мы пишем
• Gherkin
• Page Object pattern
• Код хранится в GIT
• Отдельная база для автотестов
• Запуск через Jenkins каждую ночь
24
25. Gherkin
Тесты пишутся в стиле Behavior
Driven Development:
When I….
And I….
Then I….
Examples – содержит набор тестов
Каждый степ можно использовать
неоднократно в разных тестах
25
32. Сложности
• Общая проблема UI-тестов – это скорость
• ~90 тестов идут 2,5 часа
• Частые падения тестов по различным причинам:
• Элемент не найден если предыдущий тест где-то упал
• Приложение загружалось дольше чем планировалось – Desktop
• Сетевые лаги
• В интернете почти нет инфы по автоматизации Desktop
32
33. Как их решать
• Параллелизация тестов:
• Виртуальные машины
• Docker/Vagrant
• Больше проверок
• На закрытие приложения
• На открытие скринов
33
39. Отдельные сборки
• Отдельный PC для автотестов
• Отдельные юзеры в системе
• Под ними отдельные агенты Jenkins
• Отдельный билд-план в Jenkins
• Тесты разделены независимо
• И запуск идет паралельно
39
Работа с внешними устройствами, принтеры, Пин-пады (для обработки карточных платежей)
Когда команда начала загрузать в мануальном тестировании при каждом релизе – появилась идея а не попробовать ли нам автоматизацию
Тяжело поддерживать – имеется ввиду что при записи тестового сценария в автоматическом режиме гораздо сложнее в нем разобраться чем при ручном написании
Тяжело поддерживать – имеется ввиду что при записи тестового сценария в автоматическом режиме гораздо сложнее в нем разобраться чем при ручном написании
Тяжело поддерживать – имеется ввиду что при записи тестового сценария в автоматическом режиме гораздо сложнее в нем разобраться чем при ручном написании
Тяжело поддерживать – имеется ввиду что при записи тестового сценария в автоматическом режиме гораздо сложнее в нем разобраться чем при ручном написании
Python + Selenium
В дальнейшем в компании планируется переход на веб платформу – связка Python + Selenium позволит более просто перейти на веб
Python + Selenium
В дальнейшем в компании планируется переход на веб платформу – связка Python + Selenium позволит более просто перейти на веб
Pywinauto живая библиотека – она open source, последний коммит в средине июля 2017 года, сейчас вресия 0.6.1
Pywinauto живая библиотека – она open source, последний коммит в средине июля 2017 года, сейчас вресия 0.6.1
Что говорим:
Gherkin – framework для написания тестов, BDD подход
Page object pattern – не смотря на то что это десктопное приложение – мы все равно имеем возможность использовать Page Object Patterm – каждый модуль описываем в отдельном python file
GIT у нас локально – разработка ведется в feature branch – после чего идет commit and push. Merge request создается на коллегу по цеху –> после code review проходит merge
Отдельная база для автотестов – на нее по CI идет накатка новых изменений
И запуск
----
Про конфиг приложения перед запуском тестов - подумать
------
Скриншоты – ближе к репортингу
Вставить пример теста с Examples
??? Что на будущее? Как преподнести подумать
Visual UI – стандартное приложение которое идет в коробке с Visual Studio – оно отлично подходит для отслеживания иерархии до нужного обьекта, дает возможность получить айдишки, имена и типы элементов
SWAPY – рекомендуют использовать в связке с pyWinAuto, но это круто если ваше приложение, которое вы хотите автоматизаровать - калькулятор
Visual UI – стандартное приложение которое идет в коробке с Visual Studio – оно отлично подходит для отслеживания иерархии до нужного обьекта, дает возможность получить айдишки, имена и типы элементов
SWAPY – рекомендуют использовать в связке с pyWinAuto, но это круто если ваше приложение, которое вы хотите автоматизаровать - калькулятор
Visual UI – стандартное приложение которое идет в коробке с Visual Studio – оно отлично подходит для отслеживания иерархии до нужного обьекта, дает возможность получить айдишки, имена и типы элементов
SWAPY – рекомендуют использовать в связке с pyWinAuto, но это круто если ваше приложение, которое вы хотите автоматизаровать - калькулятор
убрать
Нет, он нам не подходит – он работает в бекенде –
Добавить дельфина
Тоже есть сложности – в процессе проработки……
Добавить лейбл вагрант
Vagrant создает виртуальную машину, но опять жае таки как и в случае с докером – он работает не так как физическая виртуальная машина, а эти автотестам нужно видеть и нажимать на кнопки, двигать курсор
Vagrant создает виртуальную машину, но опять жае таки как и в случае с докером – он работает не так как физическая виртуальная машина, а эти автотестам нужно видеть и нажимать на кнопки, двигать курсор
убрать