Foutscenario's ontwerpen met een debugging-proxy
Kies HTTP-bewerkingen, vertragingen en onderbroken uitwisselingen op basis van het clientgedrag dat een proxygebaseerde test moet uitlokken.
Een debugging-proxy is nuttig wanneer een client een antwoord moet tegenkomen dat de normale server zelden produceert. Definieer eerst het clientgedrag en kies dan de ingreep die die toestand veroorzaakt.
‘Het verzoek is mislukt’ is een te breed testgeval. Een geldig HTTP-foutantwoord, een antwoord dat nooit aankomt en een verbinding die halverwege een download wordt verbroken, vragen verschillende dingen van de toepassing.
| Geval | Te onderzoeken gedrag |
|---|---|
| Een volledig HTTP-foutantwoord | Of de client de status leest en het bedoelde foutbeleid toepast |
| Een vertraagd antwoord | Of de gebruiker kan annuleren en of de time-out in de bedoelde fase geldt |
| Een onverwacht header- of bodyveld | Of parsing en validatie duidelijk mislukken |
| Een onderbroken uitwisseling | Of onvolledige gegevens onderscheidbaar blijven van een voltooid resultaat |
Gebruik een ingreep op de juiste laag
Charles biedt breekpunten die een verzoek of antwoord tegenhouden voordat het wordt doorgestuurd. Het onderschepte bericht kan worden onderzocht en bewerkt, doorlaten of afgebroken. De tool Rewrite past herhaalbare wijzigingen toe op overeenkomende headers, URL's of bodies. Beperking regelt bandbreedte en toegevoegde latentie.
Deze besturingen kunnen het gedrag van een HTTP-client uitlokken, maar een bandbreedtelimiet is geen nauwkeurig model van willekeurig IP-pakketverlies. Een proxy kan gegevens bufferen, verbindingen hergebruiken en een aparte upstreamverbinding openen. Kies een netwerkverslechteringstool wanneer de vereiste toestand specifiek onder HTTP ligt.
Houd elk geval interpreteerbaar
Laat de bedoelde host en het pad nauw overeenkomen. Begin met een normale uitwisseling, schakel één wijziging in en leg vast wat er is veranderd. Als een nieuwe poging een tweede eindpunt bereikt, beslis dan of dezelfde regel die poging moet beïnvloeden. Anders kan een onvoorwaardelijke herschrijving elk herstelpad in de oorspronkelijke fout veranderen.
Bij een upload of een betalingsachtige handeling bewijst een verloren antwoord niet dat de server het verzoek heeft geweigerd. Neem die onduidelijkheid op in het geval van de nieuwe poging in plaats van te beweren dat elke transportfout veilig te herhalen is.
Het inspecteren of bewerken van HTTPS-inhoud vereist dat de client deelneemt aan de TLS-inspectieopstelling van de debugging-proxy. Een proxy die alleen CONNECT doorgeeft, ziet versleutelde toepassingsbytes. Gebruik een geïsoleerde testconfiguratie en herstel daarna de routing en vertrouwensinstellingen, zodat latere waarnemingen de normale client beschrijven.