51Testing软件测试论坛

标题: 求助:jmeter测试websocket协议遇到问题 [打印本页]

作者: renhe0721    时间: 2017-6-6 17:49
标题: 求助:jmeter测试websocket协议遇到问题
本帖最后由 renhe0721 于 2017-6-6 17:51 编辑

帖子有点长,先感谢下各位能有耐心读下去
测试背景:
公司产品(web端应用系统)最近增加了个在线聊天的功能,使用的是websocket协议。领导让做下性能测试,没有明确的要求。【疑问1:jmeter对websocket协议的性能测试,通常需要测试些什么?常关注的性能指标有哪些?】
因为之前一直做的http协议的性能测试,用的lr。我本机lr11版本不支持websocket协议,所以这两天开始鼓捣jmeter。


操作是这样的:
从页面上点击【进入】进入聊天室页面,聊天室窗口同时显示“谁谁谁加入会议”的文字,聊天室成员都能看到。当点击聊天窗口右上角x时,其他人在聊天室窗口上看到“谁谁谁已经退出了会议”在文字。(图1)

从页面分析得到websocket协议的URL,以及参数(userId、roomId)传递的值,(图2)

在jmeter中创建了线程组,线程组下使用ws对应的URL创建了脚本,(图3,图3中有4个脚本,内容是一样的,只不过每个脚本分别上传了不同成员的userid(参数化还没学会,暂时先这么处理一下吧))

运行了一下,虽然都成功了,但从聊天窗口页面上看到,效果是“甲加入会议”、“甲已经退出会议”、“乙加入会议”、“乙已经退出会议”、“丙加入会议”、“丙已经退出会议”、“丁加入会议”、“丁已经退出会议”。(图4)。这不是我想要的效果。

我的思路:
我想要的效果是:“进入聊天室”这个长连接建立之后,让它一直保持连接状态(类似于谷歌浏览器--开发者工具:页面分析中看到的pending状态),然后不断往聊天室加人,50人、100人、200人...看看这个长连接能支持多少人同时连接。【疑问2:我不知道我这个思路对不对,还请大家多指点。】【疑问3:jmeter中,怎么能实现让ws这个长连接一直处于pending状态呢,也就是让我这个脚本一直处于运行并且不间断的状态?】


再次感谢:
帖子有点长,十分感谢各位有耐心读完。本人对jmeter是菜鸟,但又十分想学习这块,还请各位有经验的XDJM们给点建议,我思路若有不对的地方,希望大家帮忙指出来,先谢了!
我把qq留下,很希望能跟大虾们多多多多多多多多多多多多多多多多学习,QQ:365739810.

作者: jingzizx    时间: 2017-6-7 09:27
重新看看协议内容,是不是之前有握手协议
作者: zhengyanhua    时间: 2017-6-9 09:26
你的思路就是参数化来实现 的,所以你必须学参数化
作者: cookiescup    时间: 2017-7-7 01:15
我也有类似的问题,需要发送心跳包来保持长连接,但是不知道该怎么去做




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2