2016-12-16 1 views
2

다중 스레드 서버에서 단위 테스트를 수행하는 방법은 무엇입니까?단위 테스트 Java 다중 스레드 소켓 서버

나는 스레드 클래스를 확장하고 연결된 모든 클라이언트가 하위 스레드가 될 것이라고 가정합니다. 이 서버는 socket 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가 여러 개의 동시 클라이언트와 해당 응용 프로그램 서버에 무슨 일이 일어나고 있는지 알기 위해 서버에 연결된 프로파일 러를 시뮬레이션 할 수 있습니다.

jmeter에 alternatives가 있지만 테스트하지 않았습니다. 프로파일 러는 jconsole 내에있는 jconsole이 될 수 있습니다.

0

좋은 테스트 스위트는 junit으로 충분합니다. AtomicInteger를 선언하여 오류를 계산하십시오. 초기화 메소드 (@Before로 주석 됨)에서 서버와 함께 스레드를 시작하십시오. 각 테스트 메소드 (@Test로 주석 첨부 됨)에서 클라이언트를 나타내는 다중 스레드를 시작한 다음 각 스레드에 대한 결합 조작을 수행하십시오. 오류가 발생하는 각 클라이언트 및 서버는 자세한 진단을 인쇄하고 오류 카운터를 증가 시키며 종료합니다.

0

또한 클래스가 "춤"을 얼마나 잘 보는지 조롱을 들여다보십시오. 나는 mockito을 추천한다.