tsung websocket测试乱码消息

tsung websocket测试乱码消息,websocket,load-testing,tsung,Websocket,Load Testing,Tsung,我正在尝试加载测试websocket服务器。服务器接受并发送application/json,交互似乎很好 服务器正确地接受从客户端(tsung)发送的消息。不幸的是,从客户端的角度来看,它无法读取响应,我认为这可能与消息混乱有关,至少在tsung.dump中,我看到了NUL、SOH、SI等ASCII字符,但我也看到了来自服务器的json响应 这是我的tsung.xml文件片段: <?xml version="1.0"?> <!DOCTYPE tsung SYSTEM "/u

我正在尝试加载测试websocket服务器。服务器接受并发送application/json,交互似乎很好

服务器正确地接受从客户端(tsung)发送的消息。不幸的是,从客户端的角度来看,它无法读取响应,我认为这可能与消息混乱有关,至少在tsung.dump中,我看到了NUL、SOH、SI等ASCII字符,但我也看到了来自服务器的json响应


这是我的tsung.xml文件片段:

<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/local/Cellar/tsung/1.5.0/share/tsung/tsung-1.0.dtd">
<tsung loglevel="debug" dumptraffic="true">
  <clients>
    <client host="localhost" use_controller_vm="true" maxusers="1000" />
  </clients>

  <servers>
    <server host="127.0.0.1" port="8282" type="tcp" />
  </servers>

  <load>
    <arrivalphase phase="1" duration="120" unit="second">
      <users maxnumber="1" arrivalrate="1" unit="second" />
    </arrivalphase>
  </load>

  <sessions>
    <session name="websocket" probability="100" type="ts_websocket">
        <request subst="true">
             <websocket type="connect" path="/fancyurl?Content-Type=application/json"></websocket>
        </request>
        <transaction name="getsession">
          <request subst="true">
            <dyn_variable name="sessionid" jsonpath="session"/>
            <websocket type="message">{"type": "EventMessageCmd", "user": "lnramirez", "eventCode" : "epfl"}
            </websocket>
          </request>
        </transaction>
        <thinktime value="10"/>
        <request>
          <dyn_variable name="boothAck" jsonpath="commandStatus" />
          <websocket type="message">
          {
            "user": "lramirezmonterosa",
            "eventCode": "epfl",
            "type": "BoothMessageCmd",
            "boothCode": "ic",
            "commandStatus": "REQUESTED",
            "boothRequest": "JOIN"
          }
          </websocket>
        </request>
        <request>
            <websocket type="close"></websocket>
        </request>
    </session>
  </sessions>
</tsung>

{“type”:“EventMessageCmd”,“user”:“lnramirez”,“eventCode”:“epfl”}
{
“用户”:“lramirezmonterosa”,
“事件代码”:“epfl”,
“类型”:“BoothMessageCmd”,
“boothCode”:“ic”,
“命令状态”:“已请求”,
“boothRequest”:“加入”
}
tsung.dump:

Send:1390970727.56257:<0.84.0>:‚ìÝju¦`U_ýJU_ýJU_ýJU_ÿ¸HO_ÿ/³8®¸)ÿFU]¨
ÿPU]±´°¸¼HY_ÿ³6¹W_çJW­]×JU_ýJU_ýJU_ýJU
Recv:1390970727.588689<0.84.0>:~{"type":"HeartBeatMessageCmd","timeCmdBroadcasted":1390970727588,"timeCmdGenerated":1390970727588,"commandStatus":"REQUESTED","user":"lramirezmonterosa","eventCode":"epfl","uuid":"a91e2c1b-859d-4299-99fd-e7ba63ba1f42","userSession":"25bb5627-4eb3-4a23-a1c9-edd5b8231808"}`
Send:1390970727.56257::“ìÝýýýýýýýýýýýýýýýýýýýýýý
ÿPU]±∠¸¼HYÿ³6ÿWýJW­]×JUýJUýJUýJUýJU
记录:1390970727.588689:~{“类型”:“HeartBeatMessageCmd”,“timeCmdBroadcasted”:1390970727588,“timeCmdGenerated”:1390970727588,“commandStatus”:“请求”,“用户”:“lramirezmonterosa”,“事件代码”:“epfl”,“uuid”:“a91e2c1b-859d-4299-99fd-e7ba63ba1f42”,“用户会话”:“25bb5627-4eb3-4a23-a1c9-edd5b8231808”}`

看起来转储包含websocket帧数据(本例中为2字节)以及有效负载。所以这可能没问题。但我正在尝试读取带有变量“session”的响应:“%\u sessionid%%”表示未定义的始终这似乎是一个已知的bug。自从1.5.0发布以来,Tsung中的websocket支持已经有了很多更新,我猜它在repo head中是固定的,您可能应该尝试从repo.IDK中构建它,它是否有用,而不是Tsung在1.5中提供的默认websocket支持。我使用它进行websocket测试,效果非常好。