zoukankan      html  css  js  c++  java
  • webSocket ws协议测试

      最近公司做了个直播的项目,需要用到Websocket进行通信,因而需要对socket最大连接数及稳定性进行测试。当初得到这一需求的时候,唯一想到的就是jmeter,从百度下载相应的socket依赖jar包,开始研究(毕竟第一次做这方面的测试),担心单台压力源不够用,又整了个分布式,不过最终发现Jmeter并不适合测试Socket的最大连接数,于是调整了思路,寻找其他方法,功夫不费有心人,最后发下了一款不错的socket测试小工具(点击下载)是一个.exe文件,使用该工具可以很容易的实现socket稳定性测试,连接数测试就有点麻烦了,因为我们的Websocket需要传递一些参数,这就涉及到对参数进行参数化,此时想到之前做自动化用到的一个工具叫autoit3,通过autoit3调用该.exe程序来实现对不同参数的输入,需要提前准备好数据文件:具体代码如下:

    Run("E:webSocketWebSocket_testTradePhoneClient.exe")
    Sleep(5000)
    WinWait("Form1")
    
    $sheet = Gettestsheet("E:webSocketWebSocket_teststudent_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

  • 相关阅读:
    get与post区别
    移动应用专项测试的思路和方法
    一个完整的http请求响应过程
    Linux基础
    浏览器输入url按回车背后经历了哪些?
    三大浏览器(火狐-谷歌-IE浏览器)驱动版本下载
    boost-序列化
    HTTP 2.0
    http首部字段
    与http协作的web服务器
  • 原文地址:https://www.cnblogs.com/hyzhou/p/5589534.html
Copyright © 2011-2022 走看看