单元测试Java多线程套接字服务器

时间:2016-12-16 07:49:23

标签: java multithreading unit-testing server scheduled-tasks

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

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

在此服务器上进行单元测试的好方法是什么? 单元测试应该涵盖什么? 我想知道如何模拟客户

更新: 我决定在github

上分享我的代码

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

如果您正在讨论纯单元测试而不是集成测试,则可以使用TestNG来执行多线程测试。

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

答案 2 :(得分:0)

Jmeter用于模拟多个并发客户端以及链接到服务器的分析器,以便了解该应用程序服务器上发生了什么。

jmeter有alternatives,但我没有测试它们。分析器可以是jconk里面的jconk ..

答案 3 :(得分:0)

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

答案 4 :(得分:0)

还要看看嘲笑,看看你的班级“跳舞”有多好。我推荐mockito