有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

多线程单元测试Java多线程socket服务器

如何在多线程服务器上进行单元测试

假设我有一个扩展线程类的服务器,并且每个连接的客户机都是一个子线程。此服务器使用socketapi接受新客户端

在这个服务器上进行单元测试的好方法是什么? 单元测试应该包括哪些内容? 我想知道如何模拟客户端

更新: 我决定在github上共享我的代码


共 (5) 个答案

  1. # 1 楼答案

    答案是JMeter。请在这里阅读Java sockets - How to simulate multiple clients

    注意:您尝试创建功能测试,但在此之前,您需要为类进行单元测试。这是功能测试前非常重要的一步

  2. # 2 楼答案

    Jmeter模拟多个并发客户端和链接到服务器的探查器,以便了解应用程序服务器上发生了什么

    jmeter中有alternatives,但我没有测试它们。探查器可以是jdk内部的jconsole

  3. # 3 楼答案

    好的老junit对于这样的测试套件来说已经足够了。 声明一个AtomicInteger以计数错误。 从初始化方法(用@Before注释)启动服务器的线程。 从每个测试方法(用@test注释)启动代表客户端的多个线程,然后对每个线程执行连接操作。 每个客户端和服务器遇到错误时,都会打印详细的诊断信息,增加错误计数器,然后退出

  4. # 4 楼答案

    如果您谈论的是纯单元测试,而不是集成测试,那么可以使用TestNG来执行多线程测试

    @Test(threadPoolSize = 5, invocationCount = 10, timeOut = 1000)
    public void multithreadedTestMethdo(){
        ....
    }
    
  5. # 5 楼答案

    也可以通过模拟来了解你的班级“跳舞”的情况。我建议mockito