【发布时间】:2012-04-14 15:08:50
【问题描述】:
我正在编写一个通过 HTTP 与远程服务器通信的客户端。我想在客户端和服务器之间放置一个恶意代理,它会(随机?)影响网络上的流量。
我希望发生的一些事情:
- 响应的任意延迟
- 任意 HTTP 错误
- 使用 TCP 很难想象这种情况,但到底是什么:截断响应(即格式错误的数据)
- 暂时不可用(尽管这似乎很难,因为这必须在较低的网络级别完成)。
- 预定义的自定义错误(例如:每个请求都返回一个服务错误)
基本上,我想模拟该软件的用户将在现实世界中体验的一系列网络条件,并确保客户端能够优雅地处理它们。
我怀疑(希望)类似的东西已经存在。请指出正确的方向!
谢谢
【问题讨论】:
-
IIRC 一些公司为内部测试构建了类似的模块......我不知道有任何免费或商业代理允许这么多控制......基本上你会从现有的开源代理开始并修改/根据您的需要扩展它...
-
是的,我找到了Mallory。它支持插件,但在我投入时间学习 Python 之前,我想看看是否已经有了一些东西。
-
我认为更好的选择是模拟网络交互类,这样你就可以很容易地在测试用例代码中描述这样的场景,否则管理这样的系统会相当困难。
-
是的,你是对的,这将是更可取的方式。不幸的是,网络代码并没有以一种便于测试的方式构建。无论如何,我相信它非常可靠,但现实生活中的测试总比没有测试好。
-
我为什么要重新发明轮子?
标签: macos testing networking client-server