我需要测试我公司服务器内部的功能,只有当客户端运行缓慢(延迟和数据包丢失)时才能获益。在这种程度上,我需要在缓慢和/或有损连接(TCP / HTTP)上模拟客户端。我正在使用Mac,Mountain Lion,理想情况下我需要在本地运行服务器和客户端。
我试图追求的一种方法 - 失败 - 是获取一些允许我使用慢速连接构建客户端的Java API。我知道JMeter有一些名为SlowSockets(或类似的东西),但我一直在寻找更专注于性能缓慢的客户端的API。任何有用API的想法?
我尝试的另一种方法是使用代理充当客户端和服务器之间的中间人。在这种情况下,代理应该提供模拟慢速链接的功能。我已经尝试过Charles代理(Mac)和Apache TCPMon,但是当我试图让它们在工作时,我似乎错过了一些东西。例如,使用TCPMon,当我以“代理”模式(这是提供'模拟慢速链接'功能的模式)启动它时,我为本地代理定义端口,但我看不到如何定义远程主机和港口。 Charles Proxy发生了类似的事情;我可以在代理设置中设置本地端口,但我无法理解如何定义代理的远程端(实际上连接失败,说远程服务器没有响应)。任何人有想法我做错了吗?
我试图采用的另一种方法是使用较低级别(例如基于操作系统的)手段;在这种情况下,我尝试了Apple的网络链接调节器。我打开它并定义了我的慢度参数,但是当我ping时,我似乎没有看到预期的RTT等。我有一种感觉NLC与XCode和iOS测试关系密切,任何人都能够将它放在工作中用于测试其他(例如Java)应用程序?我也尝试过在Mac上使用ipfw,但手册中说ipfw现已弃用,我不想花时间去了解一个即将推出的工具。
任何想法/帮助都将受到高度赞赏。
提前致谢。