如何使用Ruby模拟延迟的Web服务器响应?

时间:2012-08-25 18:11:55

标签: ruby webserver cgi

要测试iPhone和iPad从外部Web服务器获取和缓存图像,我想在返回图像之前使用自己的服务器延迟0.5秒,1秒或3秒,使用如下所示的URL: / p>

http://www.mysite.com/getImage.cgi?pic=pic001.png&delayWanted=3

有一个简单的方法吗?

使用Ruby,我想到的两种方法是使用CGI并更改HTTP标头以返回image/png的类型,no-cache标题和“过期时间= 1一年前“,并提供内容大小,然后打开图像文件并输出数据,但这可能需要最好地匹配标准Web服务器返回HTTP标头的方式。另一种方法是先睡觉,然后简单地将重定向的HTTP代码发送到真实图片的URL,这样Web服务器就应该处理其余的。或者有更简单的方法吗?

2 个答案:

答案 0 :(得分:1)

我不知道Ruby,但是如果你可以插入一个Linux盒子,你就可以进入网络路径(或者你运行Ruby的服务器符合条件),那就是模仿逼真的网络条件的“netem”:延迟,数据包损失,抖动......

http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

答案 1 :(得分:0)

我认为更简单的方法是使用sleep,例如

sleep(2.minutes)

它只需要一行代码并延迟您的回复。