webSocket ws协议测试

本文介绍了一个用于WebSocket稳定性及最大连接数测试的小工具,并通过AutoIt3实现参数化,以适应不同场景的需求。测试中发现JMeter不适合此类测试,最终采用第三方工具成功实现了目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近公司做了个直播的项目,需要用到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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值