Стратегии блокировки внешнего веб-сервиса для имитации “отключения” во время сценария тестирования?

StackOverflow https://stackoverflow.com/questions/1787006

Вопрос

Я работаю над интеграцией данных из внешнего веб-сервиса на стороне клиента моего приложения.Кто-то попросил меня проверить состояние, когда услуга недоступна или отключена.У кого-нибудь есть какие-либо советы о том, как временно заблокировать этот сайт, пока мы проводим тест, чтобы увидеть, как ухудшается качество сервиса?

Для тех, кому любопытно, мы тестируем не Virtual Earth, а Google Maps, но это применимо к любому столь же сложному внешнему сервису.

любые мысли и предложения приветствуются

Это было полезно?

Решение

Для этого вам нужно обязательно протестировать наиболее распространенные режимы сбоев:

  1. Сбой поиска DNS
  2. Сбой IP-соединения (после успешного выполнения поиска DNS)
  3. HTTP-ответ, отличный от 200
  4. Неполный HTTP-ответ или тайм-аут
  5. HTTP-ответ 200, но возвращенный RPC или документ недействителен

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

Если вы настроите компьютер между вызывающим абонентом и службой, которая осуществляет маршрутизацию между ними, вы сможете четко смоделировать каждый из этих режимов сбоя и модифицировать свое приложение для их обработки.

Другие советы

Создайте какой-нибудь макет класса веб-сервиса или интерфейса (и впрыснуть IT).Там вы могли бы протестировать реакцию вашей системы на сбои веб-сервиса, а также что произойдет, если запрос веб-сервиса займет больше времени, чем ожидалось, или фактически истечет время ожидания.

Статья developerWorks о макетном тестировании: http://www.ibm.com/developerworks/library/j-mocktest.html

Как насчет блокирования доменных имен, о которых идет речь, путем помещения бессмысленной записи в hosts файл?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top