Gedimų atvejų projektavimas naudojant derinimo tarpinį serverį
Pasirinkite HTTP pakeitimus, delsas ir nutrauktus mainus pagal kliento elgseną, kurią turi patikrinti tarpiniu serveriu pagrįstas testas.
Derinimo tarpinis serveris naudingas, kai klientas turi susidurti su atsakymu, kurį įprastas serveris retai sukuria. Pirmiausia apibrėžkite kliento elgseną, tada pasirinkite įsikišimą, sukuriantį tą būseną.
„Užklausa nepavyko“ yra per platus testavimo atvejis. Galiojantis HTTP klaidos atsakymas, atsakymas, kuris niekada neatvyksta, ir ryšys, nutrauktas perpus atsisiuntimo metu, reikalauja iš programos skirtingų dalykų.
| Atvejis | Elgsena, kurią reikia ištirti |
|---|---|
| Visas HTTP klaidos atsakymas | Ar klientas nuskaito būseną ir taiko numatytą klaidos politiką |
| Uždelstas atsakymas | Ar naudotojas gali atšaukti ir ar skirtasis laikas taikomas numatytame etape |
| Netikėtas antraštės arba turinio laukas | Ar analizė ir validacija aiškiai nepavyksta |
| Nutraukti mainai | Ar nebaigti duomenys lieka atskiriami nuo baigto rezultato |
Naudokite įsikišimą tinkamame sluoksnyje
Charles siūlo stabdos taškus, kurie sustabdo užklausą arba atsakymą prieš persiunčiant. Perimtą pranešimą galima ištirti ir redaguoti, praleisti arba nutraukti. Jo Rewrite įrankis taiko kartotinus pakeitimus atitinkamoms antraštėms, URL arba turiniui. Ribojimas valdo pralaidumą ir pridėtą delsą.
Šios priemonės gali išbandyti HTTP kliento elgseną, tačiau pralaidumo riba nėra tikslus atsitiktinio IP paketų praradimo modelis. Tarpinis serveris gali buferiuoti duomenis, naudoti ryšius pakartotinai ir atidaryti atskirą ryšį su šaltiniu. Pasirinkite tinklo bloginimo įrankį, kai reikiama sąlyga yra konkrečiai žemiau HTTP.
Išlaikykite kiekvieną atvejį interpretuojamą
Suderinkite numatytą prieglobos serverį ir kelią siaurai. Pradėkite nuo įprastų mainų, įjunkite vieną pakeitimą ir užsirašykite, kas buvo pakeista. Jei pakartotinis bandymas pasiekia antrą galinį tašką, nuspręskite, ar ta pati taisyklė turi paveikti tą bandymą. Priešingu atveju besąlyginis perrašymas gali paversti kiekvieną atkūrimo kelią pradiniu gedimu.
Įkeliant failą ar atliekant mokėjimui panašią operaciją, prarastas atsakymas neįrodo, kad serveris atmetė užklausą. Įtraukite tą neapibrėžtumą į pakartotinio bandymo atvejį, o ne teigkite, kad kiekvieną perdavimo gedimą saugu kartoti.
HTTPS turinio tikrinimas ar redagavimas reikalauja, kad klientas dalyvautų derinimo tarpinio serverio TLS tikrinimo sąrankoje. Tarpinis serveris, perduodantis tik CONNECT, mato šifruotus programos baitus. Naudokite izoliuotą testavimo konfigūraciją ir po to atkurkite jos maršrutus ir pasitikėjimo sąranką, kad vėlesni stebėjimai apibūdintų įprastą klientą.