1

我需要测试我公司服务器内部的一个功能,它的好处只有在客户端运行缓慢(如延迟和数据包丢失)时才会显现出来。在这种情况下,我需要在慢速和/或有损连接 (TCP/HTTP) 上模拟客户端。我使用的是 Mac、Mountain Lion,理想情况下我需要在本地运行服务器和客户端。

我尝试采用的一种方法(未成功)是获取一些 Java API,这些 API 允许我构建连接速度较慢的客户端。我知道 JMeter 有一个叫做 SlowSockets(或类似的东西)的东西,但我一直在寻找更专注于性能缓慢的客户端的 API。任何有用的 API 的想法?

我尝试的另一种方法是使用代理作为客户端和服务器之间的中间人。在这种情况下,代理应该提供模拟慢速链接的功能。我已经尝试过 Charles 代理 (Mac) 和 Apache TCPMon,但是当我尝试让它们工作时,我似乎错过了一些东西。例如,使用 TCPMon,当我以“代理”模式(提供“模拟慢速链接”功能的模式)启动它时,我为本地代理定义端口,但看不到如何定义远程主机和港口。Charles Proxy 也发生了类似的事情。我可以在代理设置中设置本地端口,但我不明白如何定义代理的远程端(实际上连接失败,说远程服务器没有响应)。有人知道我做错了什么吗?

我尝试采用的另一种方法是使用较低级别(例如基于操作系统)的方法。在这种情况下,我尝试了 Apple 的 Network Link Conditioner。我打开它并定义了我的慢速参数,但是当我 ping 时,我似乎没有看到预期的 RTT 等。我感觉 NLC 与 XCode 和 iOS 测试有着密切的关系,任何有能力将它投入工作的人用于测试其他(例如Java)应用程序?我也在 Mac 上尝试过 ipfw,但是手册上说 ipfw 现在已弃用,我不想花时间去了解一个很快不会可用的工具。

任何想法/帮助将不胜感激。

提前致谢。

4

0 回答 0