【问题标题】:Testing network interrupts in software在软件中测试网络中断
【发布时间】:2008-09-14 18:09:36
【问题描述】:

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

目前我是:

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

这些方法都不是我的理想选择,我想更轻松地模拟网络问题。

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

如果能够在这个模拟的坏网络启动时构建一些自动化单元测试,那也太好了。

【问题讨论】:

    标签: windows testing networking network-programming


    【解决方案1】:

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

    【讨论】:

    • 这是我采用的方法,效果很好。明智地使用接口意味着我可以模拟出被测系统的各个部分。对于无法以这种方式完成的测试,我将被测代码连接到测试工具中的测试套接字,然后我在测试中控制该套接字
    【解决方案2】:

    我能想到的最接近的方法是与 Shunra 的 VEDekstop 做类似的事情。

    Simulating High Latency and Low Bandwidth in Testing of Database Applications

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-16
          • 2017-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多