webSocket ws協議測試


  最近公司做了個直播的項目,需要用到Websocket進行通信,因而需要對socket最大連接數及穩定性進行測試。當初得到這一需求的時候,唯一想到的就是jmeter,從百度下載相應的socket依賴jar包,開始研究(畢竟第一次做這方面的測試),擔心單台壓力源不夠用,又整了個分布式,不過最終發現Jmeter並不適合測試Socket的最大連接數,於是調整了思路,尋找其他方法,功夫不費有心人,最后發下了一款不錯的socket測試小工具(點擊下載)是一個.exe文件,使用該工具可以很容易的實現socket穩定性測試,連接數測試就有點麻煩了,因為我們的Websocket需要傳遞一些參數,這就涉及到對參數進行參數化,此時想到之前做自動化用到的一個工具叫autoit3,通過autoit3調用該.exe程序來實現對不同參數的輸入,需要提前准備好數據文件:具體代碼如下:

Run("E:\webSocket\WebSocket_test\TradePhoneClient.exe")
Sleep(5000)
WinWait("Form1")

$sheet = Gettestsheet("E:\webSocket\WebSocket_test\student_uuid20000_data.csv",1)
For $i= 1 TO 801 Step 1
   Dim $stu_uid = $sheet.Cells($i,1).value
   CreateWebSocketConnect($stu_uid)
   ;MsgBox(4096, "讀取的行:", $stu_uid)
Next
CloseExcel()


Func CreateWebSocketConnect($stu_uid)
   ControlSetText("Form1","","[CLASS:WindowsForms10.EDIT.app.0.141b42a_r14_ad1;INSTANCE:2]","ws://XXXXXXX.cn/broadcast-rest/echo?uuid="&$stu_uid&"&type=student&encryptId=testrenshu2000")
   ControlClick("Form1","","[CLASS:WindowsForms10.BUTTON.app.0.141b42a_r14_ad1;INSTANCE:6]")
   WinWait("[CLASS:#32770]","",3)
   ControlClick("[CLASS:#32770]","","Button1")
EndFunc


Func Gettestsheet($path,$sheetindex)
   ProcessClose("EXCEL.EXE")
   $oExcel = ObjCreate("Excel.Application")
   $oExcel.visible=0
   $workbook=$oExcel.WorkBooks.Open($path)
   $sheet=$workbook.Worksheets.Item($sheetindex)
   Return $sheet
EndFunc

Func CloseExcel()
      $workbook.Save();
      $oExcel.Quit();
   ProcessClose("EXCEL.EXE");退出不了則強制殺死進程
EndFunc

 

總結:webSocket最大連接數取決Tomcat最大線程數,系統進程數/etc/security/limits.d/90-nproc.conf文件,一般設置51200


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM