Bean Network Tester

Mude as condições de rede ao longo do tempo

Uma perda fixa de 10% é uma condição de laboratório. Conexões reais pioram, se recuperam, travam por quatro segundos e voltam, e o bug que você persegue costuma morar na mudança, não no estado estável.

Um cenário é uma linha do tempo

Um arquivo JSON. Cada etapa diz neste segundo, estas configurações, e tudo que você não menciona mantém o valor:

{
  "loop": true,
  "steps": [
    {"at": 0,  "settings": {"latency": 20, "jitter": 15, "down": 4096}},
    {"at": 20, "settings": {"loss": 8, "latency": 180}},
    {"at": 45, "settings": {"block_ip": "203.0.113.0/24"}},
    {"at": 65, "settings": {"block_ip": "", "loss": 0, "latency": 20}}
  ]
}

Os tempos são segundos desde o início da execução, não intervalos entre etapas. Com "loop": true, a linha do tempo recomeça quando termina, que é o que você quer para um teste de longa duração: deixe rodando e use o aplicativo.

BeanNetworkTester.exe --scenario cafe-wifi.json --target myapp.exe

8 cenários prontos acompanham o programa

Na pasta scenarios ao lado do executável. Lidos desses arquivos, então isto é o que você realmente tem:

ArquivoEtapasDuraçãoRepete
blocked-endpoint.json465 ssim
cafe-wifi.json585 ssim
congested-vpn.json470 ssim
failing-dns.json685 ssim
mobile-lte-to-3g.json785 ssim
overloaded-game-server.json572 ssim
same-loss-in-runs.json5100 ssim
upload-drop-midway.json775 snão

São texto comum: abra um, mude um número, salve. Os nomes dizem o que reproduzem: uma cafeteria lotada, uma conexão móvel caindo de LTE para 3G, um upload que morre no meio, um servidor que fica sobrecarregado, um DNS que para de responder.

Duas formas mais simples de obter mudança

Vale a pena escrever um cenário quando a sequência importa. Quando não importa, duas configurações variam sozinhas:

BeanNetworkTester.exe --flap-period 10 --flap-down 40 --target myapp.exe

Por que funciona com o aplicativo em execução

Toda configuração que um cenário toca é aplicada ao vivo na sessão já em andamento: o aplicativo não precisa reiniciar, nem a ferramenta. O log de eventos registra cada etapa quando acontece, então, quando algo quebra, você vê a qual mudança ele seguiu. Combine isso com uma semente e a sequência inteira, incluindo a perda aleatória dentro dela, se repete exatamente.

Próximos passos

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

Baixar para Windows