插件名:
WebSocket Samplers by Peter Doornbosch
官方文档
https://bitbucket.org/pjtr/jmeter-websocket-samplers/src/master/
本插件的特性:
1、提供6种不同的samplers
2、不创建额外的线程,所以可以使用jmeter的线程组。
3、支持wss
4、wss支持与jmeter的sslmanager兼容,包含客户端认证。
5、支持二进制的websocket 消息
6、二进制的 assertion 返回检查
7、在查看结果树中,提升binary 结果
8、在websocket upgreade request中集成jmeter的 header manager
9、在每个upgrade request(指的是创建websocket的那个http初始化连接)中,集成了jmeter的cookie manager
10、支持代理
11、提供filter来过滤掉不想关的消息帧
12、许多的jmeter测试规划示例说明了各种特性。
支持的sampler
1、request-response sampler 执行基础的request-response请求
2、ping-pong sampler 用来发送ping 并接收一个pong,或仅发送pong
3、close connection sampler。用来关闭一个ws连接。
4、single-read sampler, 接收一条text或binary的消息
5、single-write sampler 写一条text或binary的消息
6、open connection sampler, 显示的建立一个websocket连接
关于二进制:
1、二进制显示是十六进制
2、也要以从文件中读取内容
connections
jmeter每个线程只能有一个websocket连接。 可以选择是否重用连接,如果不重用,则会在不发送关闭websocket连接请求的情况下,自动关闭连接。
如果不手动关闭websocket,它将会在测试结束后一直运行。
websocket over TLS
使用wss时,一定要设置端口为443,不然将使用ws的默认端口。
binary response assertion
二进制断言,名称:binary response assertion
proxy
如果jmeter在运行时,提升-H <proxyHost> 和-P <proxyPort>, websocket将会使用这个代理。
FIlters
过滤掉一些 不想要的消息
fragmentation
多个帧伟一要消息的情况。
logging
在jmeter.properties中配置以下内容来开启日志
log_level.eu.luminis.jmeter=DEBUG log_level.eu.luminis.websocket=DEBUG
使用示例
结论
对于一直使用的是jmeter压测的人,使用这个插件要以达到大部分目的。但是插件不如代码使用起来灵活,发python locust,可以更灵活的进行websocket压测。