JMeter之Websocket测试
上一篇:WebSocket初步的认识
通过上一篇,以及对websocket有个初步的了解,接下来学习如何在JMeter里进行websocket的通讯。
websocket插件介绍
如下图,在插件助手里搜索web,安装两个插件~ 安装完成后就可以看到取样器里增加了几个websocket的请求。
- Websocket Close:用于正常关闭websocket连接;
- Websocket Open Connection:建立连接不接受、不发送数据;
- Websocket Ping/Pong:保持心跳;
- Websocket Sampler:Websocket请求
- Websocket Single Read Sampler:读取消息的采样器;
- Websocket Single Write Sampler:用于发送消息的采样器;
- Websocket request-response Sampler:建立连接,发送、接收消息;
元件的使用场景:日常测试时,使用Websocket request-response Sampler就足够了,进行性能测试时,只关注读或者写,可以使用Websocket Single Read Sampler或者Websocket Single Write Sampler。
Websocket request-response Sampler
Connection,有两个单选,一个是使用已经建立的连接,如果选择这种,那么,在该取样器之前要使用 websocket opnen connection先连接;
如果选择新建一个连接,则该取样器中,需要配置serverURL信息。
serverURL中,首先是协议,下拉框有两个选项,ws( 端口80) 和 wss(端口443)相当于http和https的差别。
server name or ip 就填写服务器的域名或ip地址;
port 对应服务的端口;
path 对应服务路径,可以用 /;
data 就是发送的数据,支持两种,text文本,和binary 二进制;
request data为发送的数据,当数据类型为文本式,可以带jmeter的参数,如果为binary 二进制时,则输入的为二进制内容。
工具的配置就是这些,如果你只配置了websocket request-Response sampler 请求结束后,websocket连接不会关闭。
但是会在下次运行时,GC(垃圾收集)会自动回收资源关闭连接,如果期望测试结束时,立马关闭,可以使用websocket close ;
也可以修改jmeter.properties文件,设置:websocket.thread.stop.policy = wsClose;
若设置为:websocket.thread.stop.policy=tcpClose则要在关闭jmeter时关闭连接。
遇到的问题
问题1:Websocket本身就是长连接,进行Websocket性能测试时多用户压测是一个什么概念?
常规的HTTP压测,是靠多次发送请求与服务器建立连接给服务器压力,而Websocket是长连接,当多个用户与服务器连接时(只保持Ping/Pong),是不是就是对服务产生压力了?
对也不对,通过上一篇 :WebSocket初步的认识 中得知,仅仅时保持连接即保持心跳时,因为本身通讯占用的资源很小(指的是发送的数据包非常小),对服务器消耗也很小了。这里性能测试主要测试的不是Websocket的保持连接数,而是服务器 读/写 时的业务处理能力。
问题2:WARN e.l.j.w.RequestResponseWebSocketSampler: Sampler 'WebSocket request-response Sampler' is using wss protocol (with TLS) on port 80; this might indicate a configuration error
原因:Websocket 的 ws 协议使用 80 端口;运行在TLS之上时,wss 协议默认使用 443 端口。其实说白了,wss 就是 ws 基于 SSL 的安全传输,与 HTTPS 一样样的道理。
参考文档:
1、jmeter如何测试websocket接口
2、最强辅助Jmeter,测试WebSocket协议应用
JMeter之Websocket测试相关推荐
- 性能进阶:使用JMeter进行websocket测试
摘要 本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试. 包含websocket插件的下载安装.线程组及sampler的设置.csv参数化和组建分布式测试的方法 ...
- 性能进阶:使用JMeter进行websocket测试【建议收藏】
本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试. 包含websocket插件的下载安装.线程组及sampler的设置.csv参数化和组建分布式测试的方法.如何 ...
- Jmeter对webSocket测试
Jmeter对webSocket压测以及观察 Jmeter压测工具 之前用WebSocket开发了消息的即时推送功能,也了解WebSocket的连接是比较占内存的,如果管理不好连接数,很容易触发jvm ...
- 如何使用Jmeter对WebSocket进行压力测试
01 环境准备 Jmeter对WebSocket协议的环境准备: 因为Jmeter本身不支持WebSocket协议的,所以需要安装第三方的插件JMeterWebSocketSampler-1.0.2- ...
- Jmeter实现WebSocket协议的接口和性能测试方法
WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一 ...
- JMeter 阶梯式加压测试插件 Concurrency Thread Group
jmeter阶梯式加压测试:JMeter 阶梯式加压测试插件 Stepping Thread Group 由于Stepping Thread Group插件相对来说过于老旧,已不被官方所推荐. 所以这 ...
- jmeter http并发测试时报错
jmeter http并发测试时报错 错误信息如下:jmeter Response code: Non HTTP response code: java.net.URISyntaxException ...
- jmeter 高并发测试报告_使用 JMeter 进行压力测试
原文连接:使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力 ...
- 用 JMeter 测量性能--测试您的 DB2 数据库
为什么80%的码农都做不了架构师?>>> 级别: 初级 Kulvir Singh Bhogal, IBM 电子商务顾问, Austin, TX 2004 年 11 月 01 日 ...
最新文章
- Rust和C / C ++的跨语言链接时间优化LTO
- 【实用】ABAP邮件发送(HTML+Attachment)
- python log函数_Python log10() 函数
- [转]Android studio 快速解决Gradle's dependency cache may be corrupt 和 Gradle配置 gradle
- 并联系统的失效率公式推导_供暖系统水力平衡率对室温的影响
- 一加手机虚拟键失灵解决方案
- Matlab之subplot函数
- 多变量遗传算法python代码_遗传算法介绍并附上Python代码
- java dbaResult_资深DBA经验总结 Oracle数据库最佳实践 PDF 下载
- pdf怎么解除限制?如何解密?一步解决
- matlab 图像傅里叶逆变换,用MATLAB实现图像的傅里叶变换.ppt
- CC2530天线发射功率与接收灵敏度——玩转ZigBee的高端操作(Zstack框架)
- Keil出现.\Flash\Blinky.axf: error: L6002U: Could not open file .\flash\system_lpc11xx.o: No such file
- 记一次利用tomcat manager部署war包失败并解决的经历
- Linux 常规安装MySQL 执行启动命令报错(附安装方法)
- Modern Robotics读书笔记(一)
- 字符串、列表、字典、元组的基本操作
- 2018年十大区块链投资机构盘点-千氪
- c语言printf使用方法,C/C++语言printf命令使用方法
- 云系统服务器收费,云服务器收费标准