Um teste de proxy deve fazer a conexão direta falhar
Separe a rede de teste da aplicação da saída do proxy, para que uma conexão direta despercebida não faça um teste de proxy parecer bem-sucedido.
Um proxy local a escutar ao lado de uma aplicação não reproduz uma rede que exige acesso através de proxy. A aplicação pode ignorar o proxy configurado, ligar-se diretamente e ainda assim relatar sucesso.
Separe a rede da aplicação do caminho de saída do proxy. Uma disposição baseada em contentores coloca a aplicação apenas numa rede interna e dá ao proxy uma segunda rede de saída. Numa definição Compose existente, as ligações de rede podem ser assim:
services:
app:
networks: [clients]
proxy:
networks: [clients, egress]
networks:
clients:
internal: true
egress: {}
Este é um fragmento de rede para serviços já definidos. Configure o proxy de encaminhamento aprovado e o cliente real da aplicação em separado. O Docker documenta as redes internas como isoladas do exterior; nesta disposição apenas o proxy tem a rede exterior adicional.
Inclua um caso negativo sem uso de proxy: o pedido externo da aplicação deve falhar. Num proxy HTTP autenticado, uma conta rejeitada deve produzir o seu erro de autenticação, enquanto a conta aceite deve alcançar o alvo com a correspondente observação do proxy.
Teste em separado os casos permitidos e recusados do proxy. Mantenha a aplicação fora de outras redes externas e evite acrescentar um modo de rede do anfitrião que contorne o proxy. Um pedido bem-sucedido só é prova útil quando o teste disponibiliza exatamente o caminho pretendido.