webSocketws协议测试
  最近公司做了个直播的项⽬,需要⽤到Websocket进⾏通信,因⽽需要对socket最⼤连接数及稳定性进⾏测试。当初得到这⼀需求的时候,唯⼀想到的就是jmeter,从百度下载相应的socket依赖jar包,开始研究(毕竟第⼀次做这⽅⾯的测试),担⼼单台压⼒源不够⽤,⼜整了个分布式,不过最终发现Jmeter并不适合测试Socket的最⼤连接数,于是调整了思路,寻其他⽅法,功夫不费有⼼⼈,最后发下了⼀款不错的socket测试⼩⼯具()是⼀个.exe⽂件,使⽤该⼯具可以很容易的实现socket稳定性测试,连接数测试就有点⿇烦了,因为我们的Websocket需要传递⼀些参数,这就涉及到对参数进⾏参数化,此时想到之前做⾃动化⽤到的⼀个⼯具叫autoit3,通过autoit3调⽤该.exe程序来实现对不同参数的输⼊,需要提前准备好数据⽂件:具体代码如下:
Run("E:\webSocket\WebSocket_")
Sleep(5000)
WinWait("Form1")
websocket和socket$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/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.f⽂件,⼀般设置51200

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。