上一篇: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测试相关推荐

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

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

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

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

  3. Jmeter对webSocket测试

    Jmeter对webSocket压测以及观察 Jmeter压测工具 之前用WebSocket开发了消息的即时推送功能,也了解WebSocket的连接是比较占内存的,如果管理不好连接数,很容易触发jvm ...

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

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

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

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

  6. JMeter 阶梯式加压测试插件 Concurrency Thread Group

    jmeter阶梯式加压测试:JMeter 阶梯式加压测试插件 Stepping Thread Group 由于Stepping Thread Group插件相对来说过于老旧,已不被官方所推荐. 所以这 ...

  7. jmeter http并发测试时报错

    jmeter http并发测试时报错 错误信息如下:jmeter Response code: Non HTTP response code: java.net.URISyntaxException ...

  8. jmeter 高并发测试报告_使用 JMeter 进行压力测试

    原文连接:使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力 ...

  9. 用 JMeter 测量性能--测试您的 DB2 数据库

    为什么80%的码农都做不了架构师?>>>    级别: 初级 Kulvir Singh Bhogal, IBM 电子商务顾问, Austin, TX 2004 年 11 月 01 日 ...

最新文章

  1. Rust和C / C ++的跨语言链接时间优化LTO
  2. 【实用】ABAP邮件发送(HTML+Attachment)
  3. python log函数_Python log10() 函数
  4. [转]Android studio 快速解决Gradle's dependency cache may be corrupt 和 Gradle配置 gradle
  5. 并联系统的失效率公式推导_供暖系统水力平衡率对室温的影响
  6. 一加手机虚拟键失灵解决方案
  7. Matlab之subplot函数
  8. 多变量遗传算法python代码_遗传算法介绍并附上Python代码
  9. java dbaResult_资深DBA经验总结 Oracle数据库最佳实践 PDF 下载
  10. pdf怎么解除限制?如何解密?一步解决
  11. matlab 图像傅里叶逆变换,用MATLAB实现图像的傅里叶变换.ppt
  12. CC2530天线发射功率与接收灵敏度——玩转ZigBee的高端操作(Zstack框架)
  13. Keil出现.\Flash\Blinky.axf: error: L6002U: Could not open file .\flash\system_lpc11xx.o: No such file
  14. 记一次利用tomcat manager部署war包失败并解决的经历
  15. Linux 常规安装MySQL 执行启动命令报错(附安装方法)
  16. Modern Robotics读书笔记(一)
  17. 字符串、列表、字典、元组的基本操作
  18. 2018年十大区块链投资机构盘点-千氪
  19. c语言printf使用方法,C/C++语言printf命令使用方法
  20. 云系统服务器收费,云服务器收费标准

热门文章

  1. 消息队列把消息弄丢了怎么办?
  2. 一个月能卖400套房子的顶尖模式,跨界的威力
  3. Unity小地图与大地图的互相切换
  4. 中嘉和信康盛云数据中心交流推介会在京隆重举行
  5. MySQL中InnoDB
  6. Java中数组的赋值拷贝
  7. 第一财经专访张晨:图技术赋能金融领域进入全新阶段
  8. 上下文无关文法和正则文法_什么是上下文无关文法?
  9. Sublime Text 3 Build 3176 License
  10. 【安全牛学习笔记】CSRF跨站请求伪造攻击漏洞的原理及解决办法