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协议应用

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程从基础讲起,全课程以实战为主,每个知识点通过实际案例演练讲解理论+实践结合,更容易理解,适合小白,低门槛,快速上手。 课程同时涵盖web端和移动端app测试,同时还加入了抓包工具的使用; 1) 第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,通过Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程中间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器、后置处理器之正则表达式提取器提取响应内容实践、读取本地JSON格式文件实例、正则表达式操作符、正则表达式工具之Regextester,系统全面学习正则表达式,突破JMETER 知识难点,响应断言、JMETER分布式、分布式原理、搭建JMETER 分布式、WebService协议接口测试。 每一个知识点采用理论加案例的方式,吃透每一个知识点,为性能测试实践奠定基础。 2) 第二阶段为性能测试实践篇1、通过JMETER 实践爬虫技术,爬取第三方平台全网页地址、批量爬取国外网站壁纸10W+图片并保存到本地;2、详细介绍Fiddler 抓包工具,Fiddler 抓包工具原理、Fiddler 抓取PC 端和移动端包信息、JMETER+Fiddler 结合使用对PC 端项目进行性能测试项目实践,提升PC 端性能测试能力;3、JMETER+Fiddler  结合使用对app 项目进行性能测试项目实践,提升app项目性能测试能力4、性能测试常见的业务指标和技术指标、响应时间、TPS、HPS等知识进行讲解5、通过JMETER 对移动端项目进行性能测试实战; 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值