2016-12-16 230 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