JMeter中的WebSocket请求元素(WebSocket Request)用于通过WebSocket连接发送消息和接收响应,实现对WebSocket服务器/服务的测试。
使用WebSocket请求元素需要配置以下参数:
- 连接地址,例如:ws://echo.websocket.org
- 请求头(可选),例如:Origin等
- WebSocket握手请求,可以手动输入或自动生成
例如自动生成的握手请求:
GET / HTTP/1.1
Host: echo.websocket.org
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
- 消息类型:文本或二进制
- 消息内容:需要发送的消息。文本消息需以\r\n结束。
例如:{“name”:”tom”}\r\n\r\n - 响应断言和正则表达式提取器(可选)来判断响应和提取数据
使用WebSocket请求元素可以实现以下测试场景:
- 功能测试:测试WebSocket连接、发送各种消息等。
- 压力测试:设置高并发线程组测试WebSocket性能。
- 长连接测试:WebSocket请求可以保持长连接,用于测试长连接的稳定性。
- 参数化测试:通过使用变量和循环控制器对消息内容进行参数化遍历。
一个简单的示例:
线程组:
线程数:1
Websocket请求:
连接地址:ws://echo.websocket.org
WebSocket握手请求:
自动生成
消息类型:文本
消息内容:{"name":"tom"}
响应断言:
响应包含:{"name":"tom"}
Websocket请求:
连接地址:ws://echo.websocket.org
WebSocket握手请求:
自动生成
消息类型:二进制
消息内容:dGhlIHNhbXBsZSBub25jZQ==
响应断言:
响应包含:dGhlIHNhbXBsZSBub25jZQ==
运行测试计划,会通过WebSocket连接发送文本和二进制消息,并判断接收到相同响应。