O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

1.552 visualizações

Publicada em

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

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

  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

×