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

时间:2010-08-05 14:27:41

标签: networking load-testing grinder

我正在使用The Grinder(在Windows PC上)加载测试网络应用程序,我希望模拟不完美的网络状况,以便了解对应用程序负载有什么影响,特别是我喜欢看到效果:

  • 可变网络延迟,因此不同的客户端不仅具有不同的延迟,而且在单个客户端的测试过程中延迟也可能会有所不同。
  • 丢弃网络连接 - 我希望模拟网络连接突然/随机丢弃时会发生什么。

最简单的方法是什么?

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

其他选择:

  • WanEM(OpenSource,时钟计时在默认VM安装中可能是一个挑战,会产生不一致的结果。最好使用的是安装在物理硬件而不是虚拟机中)WanEm Download location
  • Shunra(商业,我在机箱解决方案中的偏好)Shunra Products
  • Anue(商业,现在是Ixia)Anue on Ixia Website

答案 2 :(得分:0)

Grinder允许您深入了解其Jython脚本这一事实具有很大的力量来定制您想要控制“代理”行为的方式。
例如 - 如果您想模拟丢弃的网络连接,请说您的代理有100次运行。你可以生成一个随机数的数组[在0-99之间],对于匹配任何随机数的运行,你可以指示线程中止。

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

希望这有帮助。

答案 3 :(得分:0)

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