tcp/udp高併發和高吐吞效能測試工具

smark發表於2015-05-12

        在編寫一個網路服務的時候都比較關心這個服務能達到多少併發連線,而在這連線的基礎上又能達到一個怎樣的互動能力.編寫服務已經是一件很花力氣的事情,而還要去編寫一個能夠體現結果的測試工具就更加消耗工作時間.下面介紹一個測試工具只需要簡單地設定一下就能對tcp/udp服務進行高併發和高吐吞的效能測試,並通過圖形化的方式反映測試結果.

        工具是採用用.NET編寫,所以需要.NET FRAMEWORK才能執行.雖然.net在這方面的給人的感覺效能不怎麼出色,但這個工作出色效能足夠滿足大部分服務端的壓力測試.

工具主介面

​        

        工具非常簡單易用,只需要設定幾項內容就可以對於個服務端進行壓測.在這裡比較注意的就是測試模式這裡,工具主要提供兩種測試模式分別是

        應答模式:當連線接收服務端響應後馬上進行下一次請求訊息傳送

        間隔模式:連線根據設定的間隔時間來進行傳送請求訊息

訊息編輯

        在發起測試之前還需要給工作新增測試訊息,明確工具向伺服器傳送那些訊息內容

        

        可以根據自己的需要編輯多傳送的訊息,每個連線都會輪遁把這些訊息傳送給服務端,訊息的編碼也可以根據自己需要設定.工具提供4種分別是:ascii,utf8,hex和base64.

        當以上工作都準備好後就可以點選測試按鈕進行測試,工具下方的幾個曲線走勢圖會反映測試過程資料收集的結果.通過這些結果你就能瞭解到服務端響應的情況和整體吞吐瀏覽走勢.

        工具到底具備怎樣的壓力效能呢,下面通過兩個測試用例反映工具具備的測試能力.

測試用例1

        構建一個簡單的TCP服務,然後在另一臺機構建5000個連線的請求測試(測試電腦是一臺筆記本),請求訊息大小為1K;測試結果如下:

        

        從結果來看5000個連線請求測試結果反映出整體互動是每秒6W個傳送和6W個接收,而產生頻寬上下行分別是60MB,那基本已經把測試環境1Gb的頻寬跑完了.從系統的資源管理器來看的確是這樣子.

測試用例2 

        這個測試主要把傳送的訊息設定成4K,由於網路環境所以只能把測試工具和服務端放在同一臺PC上.而測試的連線數降到的2000個

        

        測試結果反映socket的讀寫量分別是4W左右,而上下行的頻寬分別170MB左右,算起來大概頻寬達到3-4Gb之間.

HTTP測試

        元件也可以對HTTP進行測試,由於測試工具是基於長連線測試,所以請求描述必須用HTTP 1.1,並設定keep-alive;具體訊息設定如下:

  

總結    

        從以上兩個測試用例的結果反映,工具具備著非常不錯的壓力測試效率.相信對於大部分TCP/UDP服務壓力測試工作都能勝任.由於工作採用的隨機埠分配,所以在建立連線的數量上會有一定的限制,後面會調整一下根據本機IP情況過行手動繫結,這樣相信可以滿足一些需大量連線服務測試.

  下載

相關文章