在软件中测试网络中断

问题描述:

我在Windows中有一个网络C++程序,我想在不同时间测试网络断开连接。我有什么选择?在软件中测试网络中断

目前我:

  1. 使用IPCONFIG其实断开网络线从我的电脑
  2. 背面/释放
  3. 使用cports程序收出插座完全

尽管这些方法都不适合我,但我想更容易地模拟网络问题。

我希望有时连接失败,有时候套接字读取失败,有时候套接字写入失败。如果有一些效用可以用来模拟这些类型的问题,那将是非常好的。

在模拟不良网络启动的情况下,建立一些自动化的单元测试也很好。

您可能想要抽象网络层,然后您可以进行单元测试,以在适当的点注入有趣的失败事件。

+0

这是我采取的方法,它工作得很好。明智地使用接口意味着我可以模拟被测系统的各个部分。对于无法以这种方式完成的测试,我将测试代码连接到测试套件中的测试套接字,然后在测试中控制它 – 2008-09-20 08:41:56

我能想到的是干什么用VEDekstop从Shunra公司类似的事情最近..

Simulating High Latency and Low Bandwidth in Testing of Database Applications

Shunra公司VE台式机标准是一个基于Windows的客户端软件解决方案,模拟广域网链接,您可以直接在桌面上测试各种当前和潜在网络条件下的应用程序。

您可以继承用于管理套接字(如果您使用MFC的CAsyncSocket或CSocket)的任何库类,覆盖要测试其失败的方法,并在覆盖中插入适当的测试代码。

您可以使用一些方法,这取决于您想要测试的级别。对于功能级别,您可以使用XUNIT测试框架来模拟响应。对于软件级别,您可以使用本地代理服务器来控制连接。