9

我们有一个定制的 Flash/HTML5 视频播放器,供我们网站上的用户使用。我目前正在充实带宽“次优”的用户的体验——基本上我们希望客户端代码能够检测到由于过度缓冲而导致的糟糕用户体验。我想在我的本地开发环境中测试这个“低带宽”处理代码。

有没有人知道在本地环境中模拟“低带宽”以进行测试的好技术?

更具体地说,我的本地浏览器连接到具有 uWSGI、nginx 和 python/django 实例的虚拟机,并且我希望能够在这些系统的内容交付中注入任意数量的延迟。(我主要关心用 nginx 来做这件事,它负责视频内容交付/流)。

编辑:开发环境是 Mac OS X 可能是相关的。

4

4 回答 4

18

只需使用 nginx 的配置即可。

虽然 OS X Lion 的网络链接调节器按预期工作,但当我真的只是想测试 Web 应用程序行为的一个子集时(即慢速视频缓冲处理系统),使用它仍然很烦人。

因此,我发现在我的nginx.conf文件中设置速率限制要方便得多,例如:

location ~ /files/(.*\.(mp4|m4v|mov))$ {
    ...
    limit_rate 50k;  #  <-- Limit download rate per connection to 50kbps
    ...
}

编辑:请参阅nginx HttpCoreModule 文档

于 2012-06-11T19:20:11.537 回答
9

FreeBSD 是 Mac OS 的祖先,因此您可以使用内置强大的防火墙,称为ipfw。它可以用于许多不同的情况,例如模拟低带宽。使用您自己的 IP 地址环回 (127.0.0.1) 或远程服务器(在这种情况下为 8.8.8.8)。

我们做了一个视频采访网络应用程序,所以我想分享一下我们模拟坏连接的经验,见下面的例子:

$ sudo su

$ ipfw show
$ ipfw pipe 1 config delay 600ms bw 256kbit/s
$ ipfw add pipe 1 dst-ip 8.8.8.8 dst-port 80

$ ipfw flush

ipfw pipe 允许您使用delaybw甚至prob来模拟缓慢和不稳定的连接来模拟数据包丢失。

于 2012-06-13T02:53:50.853 回答
5

我刚刚找到了 Mac OS X Network Link Conditioner,但我还不确定它是否可以正常工作loopback,这对于我的目的来说是必需的。

编辑:这似乎适用于环回,所以它似乎解决了我的问题!如果您在 OS X 10.7 上,这可能是要走的路

于 2012-06-11T17:54:21.637 回答
1

我正在使用这个程序NetLimiter来模拟“带宽不足”。它不是免费的,但有一个运行良好的试用版。仅适用于 Windows :(

于 2012-06-11T17:51:20.693 回答