SlideShare una empresa de Scribd logo
1 de 20
Как играть без игрока
Анна Варламова
a_varlamova@wargaming.net
2
С чего всё началось.
Поставленные задачи:
 Имитация серверу клиента.
 Имитация клиенту пользователя.
Что надо сделать было понятно, но КАК!!!!
Первые вопросы:
 Какие инструменты и подходы использовать?
 Куда и как подключаться тестами?
 Как имитировать целый клиент?
 Как имитировать пользователя?
 Как все заставить работать друг с другом?
 Как понять, что система отражает действительность?
Как играть без игрока
3
Bw Bots как имитация серверу клиента
 Решение: BW боты:
• Обнаружили статью о неких BW ботах.
• Могут логиниться и плавать
• Значит можно заставить делать что угодно
 Были открыты снова в 2013
 Плюсы:
• До 150 штук на одном процессе
• Параллельная проверка
• Быстрая работа
• Сбор статистики
Как играть без игрока
4
Мечта
 Надежная и гибкая система
 Полная информация о состоянии ветки до поступления ее в тестирование
 Ночные прогоны
 Долгие проверки (Регресс )
 Объединить проверки клиента и ботов в одном бою.
Осталось:
1. Автоматизировать клиент
2. Заставить их работать вместе
Как играть без игрока
5
Поиск пути… или изобретение велосипеда
Изученные инструменты:
 Разбор картинок
 Медленная работа
 Чувствителен к множеству
факторов
 Отсутствие документации
 Разбор картинок
 Очень интересный и
 многообещающий проект
 Много багов
 Стабильный
 Гибкий
 Удобный
Не подходит для игры!!!
Решение:
Сделать свой, основываясь на знаниях о Selenium
Кодовое название – PythonAPI.
Так наш клиент подружился с автотестами.
Как играть без игрока
Qaliber Sikuli Selenium
Для чего мы используем PythonAPI
6Как играть без игрока
 Автоматические смоки на ветках.
 Автоматизация регрессионных тестов.
 Совместные сценарии BW ботов с клиентом.
3 способа запуска:
1. Создание задачи в Jire.
2. Добавить ветку в ночные прогоны.
3. Запуск на локальной машине.
7
Smoke. Описание и способы запуска.
2 вида smoke:
• Проверки на клиенте
• Боты + Клиент
Основные проверки:
• Логинится
• Корабли загружаются, прокачиваются
• Комнаты создаются
• Бои стартуют
• Стреляют, убивают и т.д.
Запуск:
• Параллельно на 3х машинах
• Время 30-40 минут
Как играть без игрока
Устройство
8Как играть без игрока
9
Результаты прогона
 Отчет на почту:
• Информация о ветке
• Прошедшие тесты
• Логи
• Скриншоты падений
• Количество пройденных тестов
• Failed: TrainingRoomTest.testLeaveMenuCreationRoomByButton([ ]). SmokeTest: Press btn return to dock• Failed: TrainingRoomTest.testLeaveMenuCreationRoomByButton([]). SmokeTest: Press btn return to dock
Как играть без игрока
10
Результаты прогона
В testrail автоматически
отмечаются пройденные кейсы.
Как играть без игрока
Структура
Automating ships – it’s simple! 1111
Структура теста. Параметризация
12Как играть без игрока
Структура теста. BeforTest, AfterTest, BeforClass.
1313
13
Как играть без игрока
1414
Наборы тестов (TestSuite)
• Написанные тесты собираются в Test Suite
• Тесты выполняются в указанном порядке
• Реализованы вложенные тесты
• Запускается указанный в настройках TestSuite
14
Структура вложенных тестов:
Как играть без игрока
15
Хранение данных
 Все данные хранятся в папке Data и , в основном,
представляют из себя словари.
 Данные для прокачки кораблей
Как играть без игрока
16
Взаимодействие с клиентом
 Обращение к элементу:
– Уникальный айдишник
 Работа с элементом. Получаем:
– Наличие объекта
– Состояние объекта
– Текст
– Положение
– Статус
– И т.д.
 Имитируем работу клавиатуры
 Имитируем работу мыши.
 Позволяет повторять любые действия пользователя.
Как играть без игрока
17
Scheduler
Проблема:
• Тест – для удобства сценарий из последовательных действий.
• Нужно заставить тесты работать пошагово
Решение:
• Scheduler
Основная идея работы - отложенные вычисления на основе генераторов.
При запуске тест сьюты она парсится на генераторы и создается очередь
Отвечает за порядок выполнения тестов
Отвечает за Before/Test/After.
В случае параметризации добавляет нужное количество тестов с параметрами.
Так же отвечает за вложенную параметризацию.
Как играть без игрока
18
Планы по развитию
 Максимальное покрытие
 Более совершенная система
 Метки
– Соответствия тестов с изменениями в проекте
– После комита автоматически запускаются тесты, связанные с изменениями
Автоматизировать кораблики - это просто
19
Итоги
Мы достигли поставленных целей!
– Автоматизировали проверку сервера
– Автоматизировали проверку клиента
– Объединили их вместе
– Каждую ночь прогоняем автосмок на всех ветках
– Можно добавить ветку в начале разработки и следить за её статусом ежедневно.
– Своевременное информирование помогает оперативно решать проблемы
– Набор регрессионных тестов
Как играть без игрока
Спасибо за внимание!
Анна Варламова
a_varlamova@wargaming.net

Más contenido relacionado

La actualidad más candente

Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015Igor Khrol
 
The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuousSQALab
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web apiIgor Lyubin
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовCodeFest
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Igor Khrol
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
Повышаем надёжность тестов через JavaScript
Повышаем надёжность тестов через JavaScriptПовышаем надёжность тестов через JavaScript
Повышаем надёжность тестов через JavaScriptIgor Khrol
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioSQALab
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...SQALab
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Andrei Solntsev
 
Кому следует писать автоматические тесты?
Кому следует писать автоматические тесты?Кому следует писать автоматические тесты?
Кому следует писать автоматические тесты?Igor Khrol
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumSQALab
 
The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)Andrei Solntsev
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникSQALab
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Mail.ru Group
 
Webium: Page Objects in Python
Webium: Page Objects in PythonWebium: Page Objects in Python
Webium: Page Objects in PythonIgor Khrol
 

La actualidad más candente (19)

Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015
 
The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Повышаем надёжность тестов через JavaScript
Повышаем надёжность тестов через JavaScriptПовышаем надёжность тестов через JavaScript
Повышаем надёжность тестов через JavaScript
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)
 
Кому следует писать автоматические тесты?
Кому следует писать автоматические тесты?Кому следует писать автоматические тесты?
Кому следует писать автоматические тесты?
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
 
Webium: Page Objects in Python
Webium: Page Objects in PythonWebium: Page Objects in Python
Webium: Page Objects in Python
 

Similar a Как играть без игрока

Test Automation Canvas - не наступайте на глабли автоматизации
Test Automation Canvas - не наступайте на глабли автоматизацииTest Automation Canvas - не наступайте на глабли автоматизации
Test Automation Canvas - не наступайте на глабли автоматизацииAndrey Rebrov
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаSQALab
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, BadooOntico
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самSergey Xek
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"SQALab
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьSQALab
 
Microservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceMicroservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceNikita Makarov
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Nikolay Sivko
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинOntico
 
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадSQALab
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven developmentTestableapple
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Антон Сапожников. Еще один недостаток современных клиент-серверных приложений
Антон Сапожников. Еще один недостаток современных клиент-серверных приложенийАнтон Сапожников. Еще один недостаток современных клиент-серверных приложений
Антон Сапожников. Еще один недостаток современных клиент-серверных приложенийPositive Hack Days
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестированияCodeFest
 
Мониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаМониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаNikolay Sivko
 
23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...
23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...
23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...Positive Hack Days
 

Similar a Как играть без игрока (20)

Test Automation Canvas - не наступайте на глабли автоматизации
Test Automation Canvas - не наступайте на глабли автоматизацииTest Automation Canvas - не наступайте на глабли автоматизации
Test Automation Canvas - не наступайте на глабли автоматизации
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три года
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, Badoo
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай сам
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 
Microservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceMicroservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirience
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Антон Сапожников. Еще один недостаток современных клиент-серверных приложений
Антон Сапожников. Еще один недостаток современных клиент-серверных приложенийАнтон Сапожников. Еще один недостаток современных клиент-серверных приложений
Антон Сапожников. Еще один недостаток современных клиент-серверных приложений
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
 
Мониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаМониторинг качества работы вашего проекта
Мониторинг качества работы вашего проекта
 
23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...
23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...
23may 1300 valday антон сапожников 'еще один недостаток современных клиент се...
 

Más de SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информацияSQALab
 

Más de SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информация
 

Как играть без игрока

  • 1. Как играть без игрока Анна Варламова a_varlamova@wargaming.net
  • 2. 2 С чего всё началось. Поставленные задачи:  Имитация серверу клиента.  Имитация клиенту пользователя. Что надо сделать было понятно, но КАК!!!! Первые вопросы:  Какие инструменты и подходы использовать?  Куда и как подключаться тестами?  Как имитировать целый клиент?  Как имитировать пользователя?  Как все заставить работать друг с другом?  Как понять, что система отражает действительность? Как играть без игрока
  • 3. 3 Bw Bots как имитация серверу клиента  Решение: BW боты: • Обнаружили статью о неких BW ботах. • Могут логиниться и плавать • Значит можно заставить делать что угодно  Были открыты снова в 2013  Плюсы: • До 150 штук на одном процессе • Параллельная проверка • Быстрая работа • Сбор статистики Как играть без игрока
  • 4. 4 Мечта  Надежная и гибкая система  Полная информация о состоянии ветки до поступления ее в тестирование  Ночные прогоны  Долгие проверки (Регресс )  Объединить проверки клиента и ботов в одном бою. Осталось: 1. Автоматизировать клиент 2. Заставить их работать вместе Как играть без игрока
  • 5. 5 Поиск пути… или изобретение велосипеда Изученные инструменты:  Разбор картинок  Медленная работа  Чувствителен к множеству факторов  Отсутствие документации  Разбор картинок  Очень интересный и  многообещающий проект  Много багов  Стабильный  Гибкий  Удобный Не подходит для игры!!! Решение: Сделать свой, основываясь на знаниях о Selenium Кодовое название – PythonAPI. Так наш клиент подружился с автотестами. Как играть без игрока Qaliber Sikuli Selenium
  • 6. Для чего мы используем PythonAPI 6Как играть без игрока  Автоматические смоки на ветках.  Автоматизация регрессионных тестов.  Совместные сценарии BW ботов с клиентом. 3 способа запуска: 1. Создание задачи в Jire. 2. Добавить ветку в ночные прогоны. 3. Запуск на локальной машине.
  • 7. 7 Smoke. Описание и способы запуска. 2 вида smoke: • Проверки на клиенте • Боты + Клиент Основные проверки: • Логинится • Корабли загружаются, прокачиваются • Комнаты создаются • Бои стартуют • Стреляют, убивают и т.д. Запуск: • Параллельно на 3х машинах • Время 30-40 минут Как играть без игрока
  • 9. 9 Результаты прогона  Отчет на почту: • Информация о ветке • Прошедшие тесты • Логи • Скриншоты падений • Количество пройденных тестов • Failed: TrainingRoomTest.testLeaveMenuCreationRoomByButton([ ]). SmokeTest: Press btn return to dock• Failed: TrainingRoomTest.testLeaveMenuCreationRoomByButton([]). SmokeTest: Press btn return to dock Как играть без игрока
  • 10. 10 Результаты прогона В testrail автоматически отмечаются пройденные кейсы. Как играть без игрока
  • 13. Структура теста. BeforTest, AfterTest, BeforClass. 1313 13 Как играть без игрока
  • 14. 1414 Наборы тестов (TestSuite) • Написанные тесты собираются в Test Suite • Тесты выполняются в указанном порядке • Реализованы вложенные тесты • Запускается указанный в настройках TestSuite 14 Структура вложенных тестов: Как играть без игрока
  • 15. 15 Хранение данных  Все данные хранятся в папке Data и , в основном, представляют из себя словари.  Данные для прокачки кораблей Как играть без игрока
  • 16. 16 Взаимодействие с клиентом  Обращение к элементу: – Уникальный айдишник  Работа с элементом. Получаем: – Наличие объекта – Состояние объекта – Текст – Положение – Статус – И т.д.  Имитируем работу клавиатуры  Имитируем работу мыши.  Позволяет повторять любые действия пользователя. Как играть без игрока
  • 17. 17 Scheduler Проблема: • Тест – для удобства сценарий из последовательных действий. • Нужно заставить тесты работать пошагово Решение: • Scheduler Основная идея работы - отложенные вычисления на основе генераторов. При запуске тест сьюты она парсится на генераторы и создается очередь Отвечает за порядок выполнения тестов Отвечает за Before/Test/After. В случае параметризации добавляет нужное количество тестов с параметрами. Так же отвечает за вложенную параметризацию. Как играть без игрока
  • 18. 18 Планы по развитию  Максимальное покрытие  Более совершенная система  Метки – Соответствия тестов с изменениями в проекте – После комита автоматически запускаются тесты, связанные с изменениями Автоматизировать кораблики - это просто
  • 19. 19 Итоги Мы достигли поставленных целей! – Автоматизировали проверку сервера – Автоматизировали проверку клиента – Объединили их вместе – Каждую ночь прогоняем автосмок на всех ветках – Можно добавить ветку в начале разработки и следить за её статусом ежедневно. – Своевременное информирование помогает оперативно решать проблемы – Набор регрессионных тестов Как играть без игрока
  • 20. Спасибо за внимание! Анна Варламова a_varlamova@wargaming.net