Bean Network Tester

Testes de caos de rede no Windows

Teste de caos significa quebrar algo de propósito, enquanto você observa, para descobrir o que o seu software faz a respeito. Na camada de rede, é exatamente isso que esta ferramenta é: uma forma de injetar uma falha em um aplicativo e ver se ele sobrevive.

As falhas que você pode injetar

FalhaO que ela modela
Perda, corrupção, duplicaçãoUm caminho degradado. Pacotes somem, chegam danificados ou chegam duas vezes.
Latência, jitter, picosUm caminho lento ou instável, incluindo a travada de vários segundos que quebra timeouts.
Redefinições de conexãoUm firewall ou um balanceador de carga derrubando conexões no meio da transferência.
Quedas do linkO caminho some e volta, em um ciclo.
Endereço ou porta bloqueadaUma dependência inacessível enquanto todo o resto funciona.
Internet fora, LAN vivaA forma do portal cativo: o local funciona, o mundo não.

O que separa caos de ruído: repetibilidade

Uma falha aleatória que não pode ser repetida produz uma história, não um relatório de bug. Toda decisão aleatória aqui vem de uma semente, então o mesmo comando reproduz a mesma execução: os mesmos pacotes perdidos, o mesmo jitter, na mesma ordem:

BeanNetworkTester.exe --loss 15 --rst-prob 5 --seed 42 --target myapp.exe --duration 120

Essa é a diferença entre “caiu uma vez na terça passada” e um teste que falha e que outra pessoa pode rodar.

Em um pipeline

A linha de comando informa por códigos de saída, então um build consegue distinguir “o aplicativo falhou” de “a ferramenta não conseguiu iniciar”, e a sessão termina sozinha: não há etapa de limpeza para esquecer:

BeanNetworkTester.exe --loss 10 --rst-prob 5 --target myapp.exe --duration 90 --format json > chaos.ndjson

Uma sequência de falhas em vez de uma só é um arquivo de cenário, e esses também são repetíveis. Veja cenários no tempo e testes de rede no CI para os códigos de saída e o runner de que ele precisa.

Onde o raio de impacto termina

Dois limites, e ambos são deliberados. A degradação alcança um processo, PID, endereço ou porta quando você mira, então a máquina em que você trabalha continua funcionando. E é uma única máquina: isto é injeção de falhas para um cliente e a sua conexão, não para um cluster. Se você procura caos entre serviços e nós, é outro tipo de ferramenta, e esta é a peça que quebra a rede sob um único aplicativo do Windows.

Tudo é reversível na hora. STOP restaura a rede, um limite de tempo faz o mesmo, e um watchdog dentro da ferramenta desliga a captura se a própria ferramenta morrer: uma falha que você injetou nunca pode sobreviver à execução que a injetou.

Próximos passos

Pronto para quebrar a sua própria rede de propósito?

Baixar para Windows