Dizajniranje slučajeva neuspjeha pomoću proxyja za otklanjanje grešaka
Odaberite HTTP izmjene, kašnjenja i prekinute razmjene prema ponašanju klijenta koje test zasnovan na proxyju treba provjeriti.
Proxy za otklanjanje grešaka koristan je kada klijent treba naići na odgovor koji uobičajeni poslužitelj rijetko proizvodi. Najprije definirajte ponašanje klijenta, a zatim odaberite zahvat koji stvara taj uvjet.
„Zahtjev nije uspio” preširok je testni slučaj. Valjan HTTP odgovor s greškom, odgovor koji nikada ne stigne i veza prekinuta na pola preuzimanja traže od aplikacije različite stvari.
| Slučaj | Ponašanje koje treba ispitati |
|---|---|
| Potpun HTTP odgovor s greškom | Čita li klijent status i primjenjuje li predviđenu politiku greške |
| Odgođen odgovor | Može li korisnik otkazati i primjenjuje li se vremensko ograničenje u predviđenoj fazi |
| Neočekivano polje zaglavlja ili tijela | Padaju li parsiranje i validacija jasno |
| Prekinuta razmjena | Ostaju li nepotpuni podaci razlučivi od dovršenog rezultata |
Koristite zahvat na pravom sloju
Charles nudi točke prekida koje zaustavljaju zahtjev ili odgovor prije prosljeđivanja. Presretnuta poruka može se pregledati i urediti, propustiti ili prekinuti. Njegov alat Rewrite primjenjuje ponovljive promjene na odgovarajuća zaglavlja, URL-ove ili tijela. Ograničavanje kontrolira propusnost i dodano kašnjenje.
Ove kontrole mogu provjeriti ponašanje HTTP klijenta, ali ograničenje propusnosti nije precizan model slučajnog gubitka IP paketa. Proxy može međuspremati podatke, ponovno koristiti veze i otvoriti zasebnu vezu prema izvoru. Odaberite alat za oštećenje mreže kada je traženi uvjet izričito ispod HTTP-a.
Neka svaki slučaj bude tumačiv
Usko uskladite predviđeni host i putanju. Počnite uobičajenom razmjenom, uključite jednu promjenu i zabilježite što je promijenjeno. Ako ponovni pokušaj dosegne drugu krajnju točku, odlučite treba li isto pravilo utjecati na taj pokušaj. Bezuvjetno prepisivanje može inače svaki put oporavka pretvoriti u izvorni neuspjeh.
Kod prijenosa ili radnje slične plaćanju, izgubljeni odgovor ne dokazuje da je poslužitelj odbio zahtjev. Uključite tu dvosmislenost u slučaj ponovnog pokušaja umjesto tvrdnje da je svaki transportni neuspjeh siguran za ponavljanje.
Pregled ili uređivanje HTTPS sadržaja zahtijeva da klijent sudjeluje u postavci TLS inspekcije proxyja za otklanjanje grešaka. Proxy koji prenosi samo CONNECT vidi šifrirane bajtove aplikacije. Koristite izoliranu testnu konfiguraciju i zatim vratite njezino usmjeravanje i postavke povjerenja kako bi kasnija opažanja opisivala uobičajenog klijenta.