API для автоматического тестирования

В небольших проектах для воспроизведения тестов можно пользоваться следующим шагами:

  1. создать виртуальную машину (контейнер) с СУБД;
  2. восстановить СУБД с продуктовой среды из дампа;
  3. применить миграции.

Суть проблемы

При больших базах даннных время восстановления может измеряться часами. Если мы ставим целью прохождение тестов в течение короткого интервала времени (до 10 минут), нам нужен другой подход.

Решение

При написании обычного API программисты backend также пишут API для тестирования, которое создаёт сущности в бек-енде.

Например, для социальной сети это может быть содание аккаунта пользователя с нужными для проведения тестировния атрибуами (возраст, пол, вес, интересы).

В случае оператора связи сущностью может быть договор на оказание услуг с атрибутами баланс, подключенные услуги.

Тогда цикл работы теста может быть описан следующим образом:

  1. Подготовка тестовых данных с помощью API для тестирования;
  2. Выполнение интеграционных тестов в интерфейсном приложении (участвует обычное API);
  3. Проверка результата выполнения с помощью API для тестирования.

Таким образом мы можем автоматизировать тестирование в процессах с участием больших баз данных.