模拟高延迟/间歇性网络连接

问题描述:

我使用The Grinder(在Windows PC上)负载测试网络应用程序,我希望模拟不完善的网络条件以查看应用程序负载有何影响,特别是我“想看到的效果:模拟高延迟/间歇性网络连接

  • 可变的网络延迟,所以不仅不同的用户具有不同的等待时间,而且等待时间可能测试针对单个客户端期间变化。
  • 丢弃的网络连接 - 我想模拟网络连接突然/随机丢失时发生的情况。

这样做的最简单方法是什么?

  1. 设置Linux机器作为本机的默认路由器。
  2. 安装 'netem' 在Linux中: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

磨床允许您深入其Jython脚本的事实,拥有很多权力来定制您想要控制“代理”行为的方式。
例如 - 如果您想模拟丢弃的网络连接,请说您的座席有100次运行。您可以生成一个随机数组([0-99]之间),并且匹配任意随机数的运行,您可以指示线程中止。

但是,话虽如此,你希望模拟的条件更像是调整你正在测试的服务器的行为。我所提供的是解决方案,这可能会满足您的期望或不满足您的期望。磨床作为一种工具并没有真正提供很多影响服务器[待测试]的行为。它更像是一个控制用户负载和行为的工具。

希望这会有所帮助。

您可能还对研磨机的带宽限制功能感兴趣,它可以在任意级别限制代理线程在网络上发送/接收数据的速度。你的HTTP连接有一个setBandwidthLimit()方法,它允许你这样做。

其他选项:

  • WanEM(开放源代码,时钟定时可以在默认情况下是一个挑战VM安装产生不一致的结果最佳用于安装在物理硬件上而不是在虚拟机内)WanEm Download location
  • Shunra(商业,我的偏好在机箱解决方案中)Shunra Products
  • Anue(商业,现在Ixia)Anue on Ixia Website