Tarpinio serverio testas turėtų sužlugdyti tiesioginį ryšį
Atskirkite programos testinį tinklą nuo tarpinio serverio išėjimo, kad nepastebėtas tiesioginis ryšys neleistų tarpinio serverio testo palaikyti sėkmingu.
Vietinis tarpinis serveris, klausantis šalia programos, neatkuria tinklo, kuriam reikia prieigos per tarpinį serverį. Programa gali nepaisyti sukonfigūruoto tarpinio serverio, prisijungti tiesiogiai ir vis tiek pranešti apie sėkmę.
Atskirkite programos tinklą nuo tarpinio serverio išorinio kelio. Viena konteinerinė sąranka padeda programą tik į vidinį tinklą, o tarpiniam serveriui duoda antrą išėjimo tinklą. Esamame Compose apraše tinklo prisijungimai gali atrodyti taip:
services:
app:
networks: [clients]
proxy:
networks: [clients, egress]
networks:
clients:
internal: true
egress: {}
Tai tinklo fragmentas jau apibrėžtoms paslaugoms. Atskirai sukonfigūruokite patvirtintą persiunčiantį tarpinį serverį ir tikrąjį programos klientą. Docker vidinius tinklus dokumentuoja kaip izoliuotus iš išorės; šioje sąrankoje papildomą išorinį tinklą turi tik tarpinis serveris.
Įtraukite neigiamą atvejį be tarpinio serverio naudojimo: programos išorinė užklausa turėtų nepavykti. Autentifikuotame HTTP tarpiniame serveryje atmesta paskyra turėtų pateikti savo autentifikavimo klaidą, o priimta paskyra turėtų pasiekti tikslą su atitinkamu tarpinio serverio stebėjimu.
Išbandykite atskirai leidžiamus ir draudžiamus tarpinio serverio atvejus. Laikykite programą atokiai nuo kitų išorinių tinklų ir nepridėkite tarpinį serverį apeinančio pagrindinio kompiuterio tinklo režimo. Sėkminga užklausa yra naudingas įrodymas tik tada, kai testas suteikia būtent numatytą kelią.