Você pode usar o NetEm (emulação de rede) como um servidor proxy para emular muitas características da rede (velocidade, atraso, perda de pacotes etc.). Controla a rede usando o iproute2 pacote e é ativado no kernel da maioria das distribuições Linux.
É controlado pelo tc
aplicativo de linha de comando (do pacote iproute2 ), mas também existem algumas GUIs da interface da web para NetEm, por exemplo, PHPnetemGUI2 .
A vantagem é que, como escrevi, ele pode simular não apenas velocidades diferentes da rede, mas também, por exemplo, perda de pacotes, duplicação e / ou corrupção, atraso aleatório ou definido etc., para que você possa emular várias redes com desempenho ruim.
Para seu aplicativo, é absolutamente transparente, você pode configurar o sistema operacional para usar o servidor proxy NetEm, para que todas as conexões dessa máquina passem pelo NetEm. Ou você pode configurar apenas seu aplicativo para usá-lo como proxy.
Eu tenho usado para testar o desempenho de um aplicativo Android em várias redes de baixo desempenho emuladas.