http://www.lai18.com/content/2539681.html

一、添加Jmeter对WebSocket协议的支持插件

1、到https://github.com/maciejzaleski/JMeter-WebSocketSampler下载Jmeter的WebSocket协议的支持插件:JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar,并直接将这个jar包放到Jmeter软件的\lib\ext\目录下。
2、另外,查阅https://github.com/maciejzaleski/JMeter-WebSocketSampler/wiki/Dependencies看到,这个插件需要以下几个jar包的支持:

1、jetty-http-9.1.2.v20140210.jar

2、jetty-io-9.1.2.v20140210.jar

3、jetty-util-9.1.2.v20140210.jar

4、websocket-api-9.1.1.v20140108.jar

5、websocket-client-9.1.1.v20140108.jar

6、websocket-common-9.1.1.v20140108.jar

对于1.0.1的版本,这些可以到http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.1.1.v20140108/网站下载。网上也有整理好的,可以到360云盘下载http://yunpan.cn/cFDUNhHywxsMh (提取码:2c0b),也可以到http://download.csdn.net/detail/qq_14913813/8568431CSDN网站下载。直接放到Jmeter目录的\lib\ext\目录下即可。
3、以上jar包都准备好并放到Jmeter目录的\lib\ext\目录下后,重启Jmeter之后可以在sampler中看到websocket sampler这一项。

二、WebSocket Sampler简介

1、WebServer

(1)Server Name or IP:WebSocket发送的目标服务器的地址或者名称

(2)Port Number:WebSocker服务器监听的端口号。(一般是HTTP 80端口,可以通过WireShark数据包得到)

2、Timeout:

(1)Connection – 发送一个连接请求后,Jmeter等待连接完成的最长时间,单位是毫秒。
(2)Response - 对响应消息的最大等待时间。

3、WebSocket Request

(1)Implementation – 只支持RFC6455(v13) ,WebSocket协议标准的最新版。

(2)Protocol – 有ws与wss之分, ws前缀是WebSocket连接的辨别标识,wss前缀是WebSocket安全连接的辨别标识。根据自己的实际情况填写
(3)Streaming Connection – 选择这个TCP session要不要保持,如果勾上标识连接会一直存在,如果没有勾上,那么得到第一次响应后该链接就会被关闭。
(4)Request data:填入将要发送的请求,要跟开发沟通好,这个是什么格式的消息。

4.WebSocket Response

(1)Response Pattern – 采样器将等待含有该标识的消息并继续通信(或者直到timeout,该连接关闭)
(2)Close Connection Pattern – 如果服务器返回的消息含有这样的字符,就结束会话。
(3)Message Backlog – 定义服务器返回消息保留的最大长度。

三、试验

按照网上的例子,可以用http://www.websocket.org/echo.html这个网站做一些试验,网站会将收到的数据(你的request数据)在服务器响应中原样返回。
将网站提供的host等信息填入即可与网站通信,下面是我的实验,用于理解Jmeter中websocket sampler

1、streaming选项的影响

(1)不勾选streaming

test plan设置如下:

不勾选streaming connection结果如下:

可以看出发送的Ground control to Major Tom被返回,这个实验是成功的,从result tree的sampler result中Execution FLow中可以看出测试的结果与上面我们的设置之间的关系:用了5000毫秒的时间等待服务器的连接,用了20000毫秒的时间等待服务器的消息,且在接受到第一条消息后,关闭了这个websocket会话。

(2)勾上streaming connection

可以看到在结束测试的时候,勾上streaming那个小勾后,测试结束时streaming connection还是开着的。

(3)发送两条消息

只发送一条消息可能看不出什么区别,将Websocket sampler复制一下,发送两条信息。这样就可以看出第二条消息发送时是直接用的第一条消息打开的连接,服务器的响应被归类到一次会话的响应窗口。

(4)、参照参考文档设置一个测试(添加一个loop controller,设置循环次数为3)

结果如下:

循环中的sampler都勾选了streaming,最后一个sampler没有勾选此选项,结果中可以看出:在loop controller中的sampler使用的是一个连接,在loop外面的这个sampler会打开一个新的连接,可以得出一个结论,实际上,当勾选了streaming connection时,不仅会在结束会话后保留连接,而且勾选了的sampler会在有可用连接是直接使用,而没有勾选的sampler即使存在可用连接也会重新打开一个新的连接。因此,如果是要在一个会话中发送多条消息,请勾选这个streaming
connection。

2、如何人为的结束一段对话

这就要用到之前提到过的response pattern和close pattern,先给出三个请求在没有设置response pattern和close pattern的运行结果以便于比较

然后在第一个sampler中设置response pattern和close pattern如下(由于只建立一次连接,所以只会读取第一个sampler中的pattern设置信息)

这样在第二个请求的响应返回不符合father这个标识,又符合了close pattern时,就会断开连接了,此时第三个websocket勾选了streaming使用上一个连接,但实际上却连接不上这个远程终端时就会报错了。(response响应在这种情况下不能设置为空,如果先检测到返回的内容符合response pattern,就不会再去判断是否符合close pattern了)

3、Message Backlog的设置

上面的试验使用的都是默认的3,因此如果试验中的三个socket都是是在一个会话中通信,点击第三个是可以看到最近的三个服务器响应的。当这个选项设置为1时,就只能看到最近的一条响应信息了

转载于:https://www.cnblogs.com/yuanchunli/articles/5265738.html

Jmeter中Websocket协议支持包的使用 (转)相关推荐

  1. Jmeter实现WebSocket协议的接口和性能测试方法

    WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一 ...

  2. jmeter里看java的log,jmeter中java协议请求

    5.Export为Runnable Jar File:hello.jar 注意:不需要将整个工程导出,只需要选中包名(test)在file菜单中点击export->选java项的jar file ...

  3. android studio添加v7包,如何在Android Studio中添加RecyclerView-v7支持包

    一直知道RecyclerView可以代替ListView.GridView使用,聽說功能很強大,但還沒有去學習過.今天想學習,沒想到還沒開始便撞牆了.輸入Recycler,只有這兩個東西,沒有提示Re ...

  4. Keil 5中精简器件支持包,手动安装pack包

    Keil MDK 5.0以后的版本都使用软件包的方式来支持你的MCU,比如STM32F103要下载STM32F10x_DFP.pack, 但是发现有一些设备提供的支持包竟然达到200MB以上,解压后1 ...

  5. jmeter 测试websocket接口(一)

    jmeter 测试websocket接口时,需要对jmeter添加测试websocket的jar包. 下载地址: https://download.csdn.net/download/qq_14913 ...

  6. 如何使用Jmeter对WebSocket进行压力测试

    01 环境准备 Jmeter对WebSocket协议的环境准备: 因为Jmeter本身不支持WebSocket协议的,所以需要安装第三方的插件JMeterWebSocketSampler-1.0.2- ...

  7. WebSocket协议探究(序章)

    一 WebSocket协议基于HTTP和TCP协议 与往常一样,进入WebSocket协议学习之前,先进行WebSocket协议抓包,来一个第一印象. WebSocket能实现客户端和服务器间双向.基 ...

  8. 性能进阶:使用JMeter进行websocket测试

    摘要 本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试. 包含websocket插件的下载安装.线程组及sampler的设置.csv参数化和组建分布式测试的方法 ...

  9. 性能进阶:使用JMeter进行websocket测试【建议收藏】

    本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试. 包含websocket插件的下载安装.线程组及sampler的设置.csv参数化和组建分布式测试的方法.如何 ...

  10. websocket 协议ping pong text

    最近在开发一个新需求,需要在云端开发环境中先测试,然后才能部署到正式环境中. 在终端和云端之间用websocket协议建立的消息通道,在开发环境中老是不通.从终端log看发给了云端心跳包,但没有收到云 ...

最新文章

  1. 域名如何设置才能带www和不带www都能正常访问
  2. BZOJ 3329: Xorequ(数位dp+递推)
  3. 容器编排技术 -- Kubernetes 给容器和Pod分配内存资源
  4. labview 变量
  5. kaggle—HousePrice房价预测项目实战
  6. NextArch Foundation 下一代架构基金会
  7. Linux中共享库(so)的几个名称及相关用法
  8. repeater 实现分列(两列的简单办法)
  9. 旅游管理系统——你凭什么不被吐槽?
  10. 计算机科学与ICT技术书籍、资料推荐
  11. 全文六万字《计算智能》智能优化算法 张军【Python】
  12. Python爬取哔哩哔哩视频
  13. 【个人代码及思路】2018年9月CSP第一题:卖菜
  14. 前端——列表、表格、表单
  15. ONF发布安全部署SDN控制器指南
  16. echart图片库_基于html5 Canvas图表库 : ECharts
  17. keil遇到FCARM - Output Name not specified, please check ‘Options for Target - Utilities‘解决方法
  18. 【安洵杯 2019】easy-web
  19. Solidity 安全:已知攻击方法和常见防御模式综合列表
  20. 嵌入式系统硬件设计与实践(学习方法)

热门文章

  1. 头文件不是可有可无的
  2. async和await用法
  3. 快切——响应css框架之布局结构命名
  4. SurfaceView实例
  5. (IT)这个行当里你应该知道的10个小秘密
  6. 404为什么是404?
  7. 面试官:为什么要合并 HTTP 请求?
  8. 吐血整理!必须收藏,44条代码优化细节
  9. switch 是如何支持 String 的?为什么不支持 long?
  10. CodeReview 常见代码问题( 上 )