我在Windows中有一个网络C ++程序,我想在不同时间测试网络断开连接。我有什么选择?
目前我:
这些方法都不适合我,我想更轻松地模拟网络问题。
我希望有时连接失败,有时套接字读取失败,有时套接字写入失败。如果我可以使用一些实用程序来模拟这些类型的问题,那将会很棒。
当这个模拟不良网络出现时,能够构建一些自动化单元测试也是很好的。
答案 0 :(得分:11)
您可能想要抽象网络层,然后您可以让单元测试在适当的位置注入有趣的失败事件。
答案 1 :(得分:2)
我能想到的最接近的是与来自Shunra的VEDekstop做类似的事情。
Simulating High Latency and Low Bandwidth in Testing of Database Applications
Shunra VE Desktop Standard是一款基于Windows的客户端软件解决方案,可模拟广域网链接,因此您可以直接在桌面上测试各种当前和潜在网络条件下的应用程序。
答案 2 :(得分:0)
您可以子类化用于管理套接字的任何库类(如果使用MFC,可能是CAsyncSocket或CSocket),覆盖要测试其失败的方法,并在覆盖中插入适当的测试代码。
答案 3 :(得分:0)
您可以使用一些方法,这取决于您要测试的级别。对于功能级别,您可以使用XUNIT测试框架来模拟响应。对于软件级别,您可以使用本地代理服务器来控制连接。