【问题标题】:Testing/troubleshooting tool for network connections?网络连接的测试/故障排除工具?
【发布时间】:2009-07-28 17:54:15
【问题描述】:

我正在为我的项目的服务器端创建一个非阻塞 IO 系统。实际的实现并不重要(如果你在乎的话,它是 Java NIO),但我对在编程套接字通信时必须密切注意的细微问题感到非常害怕。我在很多领域都缺乏知识,所以我什至无法想象事情可能“出错”的所有方式......“半关闭”连接,发送比我预期更多的数据的连接等。

我正在寻找某种客户端工具,通过自动化连接和测试特定行为的过程来帮助测试我的系统的稳健性。某种具有不同选项的工具,用于模拟打开、使用和关闭连接的不同方式。也许它会让我一次发送一兆字节的乱码,或者尝试做一些“没有意义”的事情,所有这些都是为了我能够测试可能导致我的代码中断的随机、罕见的事情,或者无法识别“断开”的连接并关闭它。

是否存在某种工具?另一种方法可能是一些 Java 代码/单元测试。有什么想法吗?非常感谢!

【问题讨论】:

    标签: java unit-testing testing sockets nio


    【解决方案1】:

    我建议查看netcat。它为您提供了一种将各种数据推送到正在运行的服务器的非常灵活的方式。

    【讨论】:

    • 它几乎适用于任何系统。
    【解决方案2】:

    您可以利用您在 Java 方面的知识编写模拟随机客户端行为的简单单元测试:

    • 数据过多
    • 连接太多
    • 打开和关闭
    • 其他角落案例

    纯 Java 测试,没有本机代码和其他棘手的配置是一个巨大的胜利。

    作为起点,我推荐JMeter

    Apache JMeter 可用于测试静态和动态资源(文件、Servlet、Perl 脚本、Java 对象、数据库和查询、FTP 服务器等)的性能。它可用于模拟服务器、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。您可以使用它来对性能进行图形分析或测试您的服务器/脚本/对象在高并发负载下的行为。

    还可以查看JUnitPerf 网站。

    【讨论】:

      【解决方案3】:

      Richard Steven 的 Unix Network Programming (http://www.kohala.com/start/unpv12e.html) 或 TCP/IP Illustrated(同一站点)对于任何进行低级套接字编程的人来说都是必须的。一切都在 C 中,但概念是可移植的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        相关资源
        最近更新 更多