Тест на Ruby может запускать браузер, который выполняет собственные AJAX-вызовы. HTTP-рекордер, подключённый к клиентским библиотекам Ruby, не видит автоматически соединения, которые открывает этот отдельный процесс браузера.

Записывающий прокси, обращённый к браузеру, находится на пути, который используют эти запросы:

browser → recording forward proxy → external service
browser → recording forward proxy → recorded response

Puffing Billy предоставляет такую схему для тестов браузера на Ruby. Используйте его интеграцию для выбранного драйвера браузера, затем задайте ответы или постоянные записи, необходимые сценарию.

Сопоставьте фактический запрос, включая метод и представление URL, которого ожидает прокси. Документированная форма HTTPS-заглушки содержит явный порт, например https://api.example:443/status.

Выберите, что происходит с несовпавшим запросом. Если разрешить ему дойти до живого сервиса, получится один тип теста; отклонение при отсутствии записи даёт офлайн-сценарию более чёткую границу. Держите записи достаточно конкретными, чтобы разные отправленные тела случайно не получали один и тот же заготовленный ответ.

Для удалённого браузера слушатель прокси должен быть доступен с машины или из контейнера этого браузера. Localhost в процессе запуска тестов не означает тот же слушатель с другого хоста.

Похожие статьи