Dissenyar casos de fallada amb un proxy de depuració
Triï edicions HTTP, retards i intercanvis interromputs segons el comportament del client que ha d'exercitar una prova basada en proxy.
Un proxy de depuració és útil quan un client ha de trobar una resposta que el servidor normal poques vegades produeix. Definiu primer el comportament del client i després trieu la intervenció que produeix aquesta condició.
«La petició ha fallat» és un cas de prova massa ampli. Una resposta d'error HTTP vàlida, una resposta que no arriba mai i una connexió interrompuda a mig download demanen coses diferents a l'aplicació.
| Cas | Comportament a examinar |
|---|---|
| Una resposta d'error HTTP completa | Si el client llegeix l'estat i aplica la política d'error prevista |
| Una resposta endarrerida | Si l'usuari pot cancel·lar i el temps d'espera s'aplica a l'etapa prevista |
| Un camp de capçalera o de cos inesperat | Si l'anàlisi i la validació fallen amb claredat |
| Un intercanvi interromput | Si les dades incompletes continuen sent distingibles d'un resultat acabat |
Useu una intervenció a la capa correcta
Charles ofereix punts d'interrupció que aturen una petició o una resposta abans de reenviar-la. El missatge interceptat es pot examinar i editar, deixar passar o avortar. La seva eina Rewrite aplica canvis repetibles a capçaleres, URL o cossos coincidents. La limitació de velocitat controla l'amplada de banda i la latència afegida.
Aquests controls poden exercitar el comportament d'un client HTTP, però un límit d'amplada de banda no és un model precís de la pèrdua aleatòria de paquets IP. Un proxy pot emmagatzemar dades en memòria intermèdia, reutilitzar connexions i obrir una connexió ascendent separada. Trieu una eina de degradació de xarxa quan la condició requerida sigui específicament per sota d'HTTP.
Manteniu cada cas interpretable
Feu coincidir l'amfitrió i el camí previstos de manera estreta. Comenceu amb un intercanvi normal, activeu un sol canvi i registreu què s'ha canviat. Si un reintent arriba a un segon punt final, decidiu si la mateixa regla ha d'afectar aquell intent. En cas contrari, una reescriptura incondicional pot convertir cada camí de recuperació en la fallada original.
En una càrrega o una operació semblant a un pagament, una resposta perduda no demostra que el servidor rebutgés la petició. Incloeu aquesta ambigüitat en el cas de reintent en lloc d'afirmar que tota fallada de transport és segura de repetir.
Inspeccionar o editar contingut HTTPS requereix que el client participi en la configuració d'inspecció TLS del proxy de depuració. Un proxy que només transporta CONNECT veu bytes d'aplicació xifrats. Useu una configuració de prova aïllada i restabliu després l'encaminament i la configuració de confiança perquè les observacions posteriors descriguin el client normal.