Deseñar casos de fallo cun proxy de depuración
Escolla edicións HTTP, atrasos e intercambios interrompidos segundo o comportamento do cliente que debe exercitar unha proba baseada en proxy.
Un proxy de depuración é útil cando un cliente necesita atoparse cunha resposta que o servidor normal raramente produce. Defina primeiro o comportamento do cliente e despois escolla a intervención que produce esa condición.
«A petición fallou» é un caso de proba demasiado amplo. Unha resposta de erro HTTP válida, unha resposta que nunca chega e unha conexión interrompida a metade dunha descarga esixen cousas distintas á aplicación.
| Caso | Comportamento a examinar |
|---|---|
| Unha resposta de erro HTTP completa | Se o cliente le o estado e aplica a política de erro prevista |
| Unha resposta atrasada | Se o usuario pode cancelar e o tempo de espera se aplica na etapa prevista |
| Un campo de cabeceira ou de corpo inesperado | Se a análise e a validación fallan con claridade |
| Un intercambio interrompido | Se os datos incompletos seguen sendo distinguibles dun resultado rematado |
Use unha intervención na capa correcta
Charles ofrece puntos de interrupción que deteñen unha petición ou unha resposta antes de reenviala. A mensaxe interceptada pódese examinar e editar, deixar pasar ou abortar. A súa ferramenta Rewrite aplica cambios repetibles a cabeceiras, URL ou corpos coincidentes. A limitación controla o ancho de banda e a latencia engadida.
Estes controis poden exercitar o comportamento dun cliente HTTP, pero un límite de ancho de banda non é un modelo preciso da perda aleatoria de paquetes IP. Un proxy pode almacenar datos en búfer, reutilizar conexións e abrir unha conexión ascendente separada. Escolla unha ferramenta de degradación de rede cando a condición requirida estea especificamente por baixo de HTTP.
Manteña cada caso interpretable
Axuste o host e o camiño previstos de forma estreita. Comece cun intercambio normal, active un só cambio e rexistre que se cambiou. Se un reintento chega a un segundo punto final, decida se a mesma regra debe afectar ese intento. Se non, unha reescritura incondicional pode converter cada camiño de recuperación no fallo orixinal.
Nunha carga ou nunha operación semellante a un pagamento, unha resposta perdida non demostra que o servidor rexeitase a petición. Inclúa esa ambigüidade no caso de reintento en lugar de afirmar que todo fallo de transporte é seguro de repetir.
Inspeccionar ou editar contido HTTPS require que o cliente participe na configuración de inspección TLS do proxy de depuración. Un proxy que só transporta CONNECT ve bytes de aplicación cifrados. Use unha configuración de proba illada e restableza despois o seu encamiñamento e a súa configuración de confianza para que as observacións posteriores describan o cliente normal.