Como simular conectividade de Internet ruim para teste

Você tem testes de unidade, testes de integração e testes de desempenho. Molho incrível!

Você testou como seu aplicativo se comportará em uma conexão de baixa qualidade com as interwebs? Os aplicativos podem começar a agir de forma bastante estranha quando confrontados com baixa largura de banda, alta latência ou instabilidade.

The Comcast Slowskys

OS X

Para usuários do OS X, você tem sorte com duas opções. As ferramentas de desenvolvedor Xcode da Apple incluem um aplicativo GUI chamado Network Link Conditioner (NLC). Na linha de comando, você ipfwsaiu da caixa para diminuir sua conexão com a Internet.

OS X GUI – NLC

Matt Thompson @ NSHipster fez um ótimo artigo sobre o Network Link Conditioner da Apple. Matt Gemmel também dá alguns exemplos .

Terminal OS X – ipfw

Na linha de comando, ipfw é o homem certo para o trabalho. (Eu acredito que o NLC é apenas uma GUI em torno das regras do ipfw0.

Spiff deu alguns ótimos exemplos de regras ipfw em SO:

limitar o tráfego TCP de entrada total a 2Mbit / s e UDP a 300Kbit / s

sudo ipfw add pipe 2 in proto tcp
sudo ipfw add pipe
3 in proto udp
sudo ipfw pipe
2 config bw 2Mbit/s
sudo ipfw pipe
3 config bw 300Kbit/s

limitar o tráfego de entrada a 300 Kbit / s para cada host na rede 10.1.2.0/24.

sudo ipfw add pipe 4 src-ip 10.1.2.0/24 in
sudo ipfw pipe
4 config bw 300Kbit/s queue 20 mask dst-ip 0x000000ff

simular um link ADSL para a lua:

sudo ipfw add pipe 3 out
sudo ipfw add pipe
4 in
sudo ipfw pipe
3 config bw 128Kbit/s queue 10 delay 1000ms
sudo ipfw pipe
4 config bw 640Kbit/s queue 30 delay 1000ms

E para redefinir as configurações iniciais:

sudo ipfw flush

ipfw também está disponível nas distros FreeBSD

janelas

Se você for um usuário do Windows, verifique o suporte do Fiddler para limitação de largura de banda por meio de seu proxy WinSOCKS.