UI тесты на стероидах моках
@vvscode
- JS Fan
- Team Lead
- Love QA
Сеанс публичной рефлексии
Инструкции и рекомендации- Какие проблемы
- Как решали
- К чему пришли
Apollo
- Ember.js
- 180+ resources
- JSON API over WS
- Общий DEV-сервер
UI тесты
- Проверяют взаимодействие всех компонентов
- Проверяют именно то, что нужно пользователю
- Находятся на вершине "пирамиды тестирования"
Пирамида тестирования
UI тесты
- Медленные
- Сложные
- "Точные"
Nightwatch.js
- Selenium
- Chome + Xvfb / phantomjs
- Frontend !== AQA
Ember Acceptance
+ Ember Mirage
Run your acceptance tests in browser
Однако
- Размеры и сложность моков
- Статичность
- Скорость выполнения
Ура! Пришли QA!
Мы =)
Первые тесты пришли быстро.
40+ кейсов около 20 минут
Дальше больше
100 тестов на пару часов
Очевидное решение
Параллельный запуск тестов
Неочевидные последствия
Всем плохо =(
Вариант
ComaQA #2
Алексей Буль,
Wargaming Juno,
"JS для автоматизации UI"
Моки на backend
Ставим моки на Back-end
https://goo.gl/QbNLhX
У нас во фронтенде и не такое бывало...
- Кэширующий прокси
- Работа в оффлайн
- Ускорение загрузки страниц
Но готовые решения не подходили
- WS
- Статичность не подходит для тестов
- Параллельность тестов
Сервер моков
Проблемы с WS, параллельностью, доступом из тестового окружения, сложность
Моки на клиенте
Нужно писать код на JS
bemo -project
Java + xhook
https://github.com/bemo-project
И понеслась
- + 1 скрипт
- Cookies Driven Development
ICache
- collectMocks
- useCache
- removeMockItemOnUse
- addMock()
- getNotMockedRequests()
sleep нужен всем
- ...
- initialMocksLoaded()
- onNotMockNotFound()
Что поменялось за два года?
- Смена протокола
- Новые версии API
- Новые инструменты для запросов
Результат
- 400+ тестов за 5 минут
- Никакой лишней нагрузки на API
- Шаблоны переиспользуются
- Моки служат основой для тестирования API
Будешь так делать еще?
Да
?
Mock backend
By Vasiliy Vanchuk
Mock backend
Ускорение UI тестов с использование моков для backend
- 1,736