Design fejlscenarier med en fejlfindingsproxy
Vælg HTTP-ændringer, forsinkelser og afbrudte udvekslinger efter den klientadfærd, en proxybaseret test skal afprøve.
En fejlfindingsproxy er nyttig, når en klient skal møde et svar, som den normale server sjældent producerer. Definer først klientadfærden, og vælg derefter den indgriben, der frembringer den tilstand.
“Anmodningen mislykkedes” er et for bredt testtilfælde. Et gyldigt HTTP-fejlsvar, et svar der aldrig ankommer, og en forbindelse afbrudt midt i en download kræver forskellige ting af programmet.
| Tilfælde | Adfærd der skal undersøges |
|---|---|
| Et komplet HTTP-fejlsvar | Om klienten læser status og anvender den tilsigtede fejlpolitik |
| Et forsinket svar | Om brugeren kan annullere, og om timeouten gælder på det tilsigtede trin |
| Et uventet header- eller bodyfelt | Om parsing og validering fejler tydeligt |
| En afbrudt udveksling | Om ufuldstændige data forbliver til at skelne fra et færdigt resultat |
Brug en indgriben på det rigtige lag
Charles tilbyder breakpoints, der standser en anmodning eller et svar, før det videresendes. Den opfangede meddelelse kan undersøges og redigeres, lukkes igennem eller afbrydes. Værktøjet Rewrite anvender gentagelige ændringer på matchende headere, URL'er eller bodies. Begrænsning styrer båndbredde og tilføjet latenstid.
Disse kontroller kan afprøve en HTTP-klients adfærd, men en båndbreddegrænse er ikke en præcis model af tilfældigt IP-pakketab. En proxy kan bufre data, genbruge forbindelser og åbne en separat opstrømsforbindelse. Vælg et værktøj til netværkssvækkelse, når den krævede tilstand specifikt ligger under HTTP.
Hold hvert tilfælde fortolkeligt
Match den tilsigtede vært og sti snævert. Begynd med en normal udveksling, aktiver én ændring, og registrér hvad der blev ændret. Hvis et nyt forsøg når et andet endepunkt, så afgør, om samme regel skal påvirke det forsøg. Ellers kan en ubetinget omskrivning gøre enhver genopretningsvej til den oprindelige fejl.
Ved en upload eller en betalingslignende handling beviser et tabt svar ikke, at serveren afviste anmodningen. Medtag den uklarhed i gentagelsestilfældet i stedet for at hævde, at enhver transportfejl er sikker at gentage.
Inspektion eller redigering af HTTPS-indhold kræver, at klienten deltager i fejlfindingsproxyens TLS-inspektion. En proxy, der kun viderefører CONNECT, ser krypterede programbytes. Brug en isoleret testkonfiguration, og gendan derefter dens routing og tillidsopsætning, så senere observationer beskriver den normale klient.