pytest - симулировать сбой сети - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь провести интеграционный тест с использованием pytest для моего приложения, разработанного на python3.7 и asyncio. Предполагается, что приложение подключается к удаленному серверу, и в случае сбоя в сети мое приложение должно обнаружить это и попытаться повторно подключиться через указанный интервал. Как правило, в моем интеграционном тесте мой удаленный сервер уже работает и прослушивает порт TCP. Мое приложение должно подключиться к этому порту, и я проверю, было ли соединение успешным. Затем мне нужно смоделировать отключение сети, при котором приложение теряет соединение с сервером, и проверить поведение приложения, когда сеть не работает, а затем мне нужно вернуть сеть в оперативный режим и подтвердить, что приложение будет правильно подключено и выполнит его. задачи. В целях моего интеграционного тестирования все это работает на моем локальном хосте.

Есть ли в pytest что-то для этого варианта использования, или я должен сам создать какой-нибудь прокси-сервер? Как бы я поступил так?

1 Ответ

0 голосов
/ 20 ноября 2018

Pytest не имеет функции для имитации сбоя в сети, потому что это просто тестовый запуск.

Вам необходимо использовать внешний макет-сервер, который может эмулировать сбой соединения или длительное время отклика. Для этого я использую и рекомендую мак-сервер Mountebank: http://www.mbtest.org/

С Mountebank вы сможете эмулировать любой ответ с удаленного сервера. Вы можете управлять поведением Mountebank напрямую через API или использовать клиентские библиотеки: http://www.mbtest.org/docs/clientLibraries

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...