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,601