问题 在软件中测试网络中断


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

目前我是:

  1. 实际上从我的计算机背面断开网络线
  2. 使用ipconfig / release
  3. 使用 cports 程序完全关闭套接字

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

我希望有时连接失败,有时套接字读取失败,有时套接字写入失败。如果有一些实用程序可以用来模拟这些类型的问题,那就太好了。

能够构建一些自动单元测试同时模拟坏网络也是很好的。


10611
2017-09-14 18:09


起源



答案:


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


11
2017-09-14 20:09



这是我采取的方法,它运作良好。明智地使用接口意味着我可以模拟被测系统的各个部分。对于不能以这种方式完成的测试,我将测试中的代码连接到测试工具中的测试插座,然后我在测试中控制 - Len Holgate


答案:


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


11
2017-09-14 20:09



这是我采取的方法,它运作良好。明智地使用接口意味着我可以模拟被测系统的各个部分。对于不能以这种方式完成的测试,我将测试中的代码连接到测试工具中的测试插座,然后我在测试中控制 - Len Holgate


我能想到的最接近的是做类似的事情 VEDekstop 来自Shunra ..

在数据库应用测试中模拟高延迟和低带宽 

Shunra VE Desktop Standard是一种基于Windows的客户端软件解决方案,可模拟广域网链接,因此您可以直接从桌面在各种当前和潜在的网络条件下测试应用程序。 


3
2017-09-14 18:18





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


0
2017-09-15 01:19





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


0
2017-10-22 08:16