Estratégias para bloquear um serviço da web externo para simular "Down" durante um cenário de teste?
-
21-09-2019 - |
Pergunta
Estou trabalhando para integrar dados de um serviço da Web externo no lado do cliente do meu pedido de aplicação. Alguém me pediu para testar a condição quando o serviço não estiver disponível ou diminuído. Alguém tem alguma dica sobre como bloquear este site temporariamente enquanto executamos o teste para ver como o serviço se degrada?
Para aqueles curiosos, estamos testando contra a Terra Virtual, mas o Google Maps, mas isso se aplicaria a qualquer serviço externo igualmente complicado.
Quaisquer pensamentos e sugestões são bem -vindos
Solução
Você precisa ter certeza de testar os modos de falha mais comuns para isso:
- A pesquisa do DNS falha
- A conexão IP falha (quando a pesquisa do DNS for bem -sucedida)
- Resposta HTTP Além de 200
- Resposta HTTP incompleta ou tempo limite
- Resposta HTTP 200 Mas RPC ou documento retornado é inválido
Esses são apenas alguns modos de falha comuns que eu consegui pensar que todos se manifestam com comportamentos diferentes que você pode querer lidar com o seu aplicativo explicitamente.
Se você configurar um computador entre o chamador e o serviço que rotula entre eles, poderá simular cada um desses modos de falha distintamente e modificar seu aplicativo para lidar com eles.
Outras dicas
Crie alguma classe ou interface de mock-webservie (e injetar isto). Lá, você pode testar a resposta do seu sistema às falhas do WebService e também o que acontece, se uma solicitação de serviço da Web levar mais tempo do que o esperado ou realmente tempo limite.
Artigo de desenvolvedores sobre testes simulados: http://www.ibm.com/developerworks/library/j-mocktest.html
Que tal bloquear o (s) nome (s) de domínio (s) em questão, colocando uma entrada sem sentido no hosts
Arquivo?