Стратегии блокировки внешнего веб-сервиса для имитации “отключения” во время сценария тестирования?
-
21-09-2019 - |
Вопрос
Я работаю над интеграцией данных из внешнего веб-сервиса на стороне клиента моего приложения.Кто-то попросил меня проверить состояние, когда услуга недоступна или отключена.У кого-нибудь есть какие-либо советы о том, как временно заблокировать этот сайт, пока мы проводим тест, чтобы увидеть, как ухудшается качество сервиса?
Для тех, кому любопытно, мы тестируем не Virtual Earth, а Google Maps, но это применимо к любому столь же сложному внешнему сервису.
любые мысли и предложения приветствуются
Решение
Для этого вам нужно обязательно протестировать наиболее распространенные режимы сбоев:
- Сбой поиска DNS
- Сбой IP-соединения (после успешного выполнения поиска DNS)
- HTTP-ответ, отличный от 200
- Неполный HTTP-ответ или тайм-аут
- HTTP-ответ 200, но возвращенный RPC или документ недействителен
Это всего лишь несколько распространенных режимов сбоя, о которых я мог бы подумать, и все они будут проявляться в различном поведении, которое вы, возможно, захотите, чтобы ваше приложение обрабатывало явно.
Если вы настроите компьютер между вызывающим абонентом и службой, которая осуществляет маршрутизацию между ними, вы сможете четко смоделировать каждый из этих режимов сбоя и модифицировать свое приложение для их обработки.
Другие советы
Создайте какой-нибудь макет класса веб-сервиса или интерфейса (и впрыснуть IT).Там вы могли бы протестировать реакцию вашей системы на сбои веб-сервиса, а также что произойдет, если запрос веб-сервиса займет больше времени, чем ожидалось, или фактически истечет время ожидания.
Статья developerWorks о макетном тестировании: http://www.ibm.com/developerworks/library/j-mocktest.html
Как насчет блокирования доменных имен, о которых идет речь, путем помещения бессмысленной записи в hosts
файл?