2016-12-16 241 views
2

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

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

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

更新: 我决定分享github

+0

你是指什么样的服务器HTTP /普通套接字?请扩展一下你的问题 –

+0

对,简单的插座。 – Jun

回答

1

回答我的代码是JMeter的。请在这里阅读Java sockets - How to simulate multiple clients

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

+0

是的单元测试会给你更快的反馈,而且应该更容易调试。 – louisgab

1

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

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

的JMeter模拟多个和并发客户端和连接到服务器才能知道的是,应用程序服务器上要探查。

还有alternatives到jmeter,但我没有测试它们。 Profiler可以是jconsole中的jconsole ..

0

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

0

也看看嘲笑,看看你的班级“跳舞”有多好。我建议mockito