Conceber casos de falha com um proxy de depuração
Escolha edições HTTP, atrasos e trocas interrompidas de acordo com o comportamento do cliente que um teste baseado em proxy precisa de exercitar.
Um proxy de depuração é útil quando um cliente precisa de encontrar uma resposta que o servidor normal raramente produz. Defina primeiro o comportamento do cliente e depois escolha a intervenção que produz essa condição.
«O pedido falhou» é um caso de teste demasiado amplo. Uma resposta de erro HTTP válida, uma resposta que nunca chega e uma ligação interrompida a meio de um download exigem coisas diferentes da aplicação.
| Caso | Comportamento a examinar |
|---|---|
| Uma resposta de erro HTTP completa | Se o cliente lê o estado e aplica a política de erro prevista |
| Uma resposta atrasada | Se o utilizador pode cancelar e se o tempo limite se aplica na etapa prevista |
| Um campo de cabeçalho ou de corpo inesperado | Se a análise e a validação falham com clareza |
| Uma troca interrompida | Se os dados incompletos continuam distinguíveis de um resultado concluído |
Utilize uma intervenção na camada certa
O Charles fornece pontos de interrupção que suspendem um pedido ou uma resposta antes de o encaminhar. A mensagem interceptada pode ser examinada e editada, deixada passar ou abortada. A sua ferramenta Rewrite aplica alterações repetíveis a cabeçalhos, URL ou corpos correspondentes. A limitação controla a largura de banda e a latência adicionada.
Estes controlos podem exercitar o comportamento de um cliente HTTP, mas um limite de largura de banda não é um modelo preciso da perda aleatória de pacotes IP. Um proxy pode armazenar dados em memória intermédia, reutilizar ligações e abrir uma ligação ascendente separada. Escolha uma ferramenta de degradação de rede quando a condição necessária estiver especificamente abaixo de HTTP.
Mantenha cada caso interpretável
Faça corresponder o anfitrião e o caminho pretendidos de forma estreita. Comece com uma troca normal, ative uma única alteração e registe o que foi alterado. Se uma nova tentativa atingir um segundo ponto final, decida se a mesma regra deve afetar essa tentativa. Caso contrário, uma reescrita incondicional pode transformar cada caminho de recuperação na falha original.
Num envio ou numa operação semelhante a um pagamento, uma resposta perdida não prova que o servidor rejeitou o pedido. Inclua essa ambiguidade no caso de nova tentativa em vez de afirmar que qualquer falha de transporte é segura de repetir.
Inspecionar ou editar conteúdo HTTPS exige que o cliente participe na configuração de inspeção TLS do proxy de depuração. Um proxy que só transporta CONNECT vê bytes de aplicação encriptados. Utilize uma configuração de teste isolada e restaure depois o seu encaminhamento e as definições de confiança, para que as observações posteriores descrevam o cliente normal.