Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,518 views

Published on

Презентация Анны Варламовой на SQA Days-16
14-15 ноября 2014, Санкт-Петербург, Россия
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

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

×