Внедрение ошибок намеренно приводит к некорректной работе зависимости, чтобы код, зависящий от неё, можно было протестировать на предмет возможных сбоев: медленные ответы, периодические ошибки 5xx, тайм-ауты, некорректные тела зависимостей. Это контролируемый, воспроизводимый край спектра, предшествующий хаос-инженерии в производственной среде.
Ошибки внедряются на границе, которую тестируемый код не может преодолеть — это может быть фиктивный сервер, прокси, правило сервисной сетки, флаг функции в самой зависимости. Затем тест проверяет поведение: что повторные попытки происходят и прекращаются, что срабатывает тайм-аут, что отображается резервный вариант, что не остается незавершенного состояния.
Случайные сбои — это хороший тест. Тест, который проваливается один раз из четырех, — это ненадежный тест. Полезное внедрение ошибок является детерминированным — этот запрос не проходит, тот работает медленно — или, по крайней мере, инициализированным, так что сбой можно воспроизвести и проверить правильность исправления.
API внедрения ошибок настраивается с помощью запроса PUT /faults/v1/config — задержка, код состояния, частота отказов, некорректный JSON — а запрос GET /faults/v1/target ведет себя некорректно точно так же, как настроено, внутри вашей собственной песочницы.
Все термины · Приёмы тестирования · Все 39 mock REST API
Последнее обновление