功能简介
插件用于测试 WebSocket / WSS 服务的连接性能和消息传输性能。支持 TCP / TLS 握手、WebSocket Upgrade、数据发送、Ping / Pong 心跳测试,可全面评估 WebSocket 服务的网络质量。
输入参数
| 参数名 | 是否必填 | 默认值 | 说明 |
|---|
url | 是 | - | WebSocket URL,如 wss://www.example.com/ws |
host | 否 | 空 | 替代 URL 中的域名进行解析,格式为 IP 别名 |
ipVersion | 否 | 自动 | IP 版本:ipv6 强制 IPv6,ipv4 强制 IPv4,名字必须是 ipVersion |
dnsserver | 否 | 空 | 自定义 DNS 服务器 |
header | 否 | 空 | 自定义 HTTP 请求头,可配置多行 |
data | 否 | 空 | WebSocket 连接成功后发送的数据内容 |
checkData | 否 | 空 | 发送 data 后响应消息校验规则 |
pingCount | 否 | 0 | Ping / Pong 心跳发送次数。>0 时启用心跳测试,最大 100 |
pingSize | 否 | 32 | Ping 消息负载大小(字节),最大 65535 |
pingInterval | 否 | 100 | Ping 消息发送间隔,单位毫秒,最大 5000 |
输出指标
| 指标索引 | 指标名称 | 单位 | 计算方式 |
|---|
| 0 | 总耗时 | 毫秒 | 从任务开始到 WebSocket 发送数据结束的总耗时(不包括 Ping / Pong 测试耗时) |
| 1 | DNS 时间 | 毫秒 | 域名解析耗时 |
| 2 | 连接时间 | 毫秒 | TCP 三次握手耗时 |
| 3 | SSL 时间 | 毫秒 | TLS 握手耗时(WSS 时) |
| 4 | Upgrade 时间 | 毫秒 | WebSocket HTTP Upgrade 请求 / 响应的耗时 |
| 5 | 请求发送时间 | 毫秒 | 发送 WebSocket 数据帧的耗时(配置 data 时) |
| 6 | 首包时间 | 毫秒 | 从发送数据到收到首条服务器推送的耗时(配置 data 时) |
| 7 | 剩余包时间 | 毫秒 | 后续数据接收的耗时(配置 data 时) |
| 8 | HTTP 状态码 | - | WebSocket Upgrade 响应的 HTTP 状态码,如 101 |
| 9 | Ping 丢包率 | % | (发送Ping数 - 收到Pong数) / 发送Ping数 * 100 |
| 10 | Ping 最小延迟 | 毫秒 | 所有成功 Ping-Pong 的最小往返时延 |
| 11 | Ping 最大延迟 | 毫秒 | 所有成功 Ping-Pong 的最大往返时延 |
| 12 | Ping 平均延迟 | 毫秒 | 所有成功 Ping-Pong 的平均往返时延 |
参数对输出指标的影响
url:决定连接协议(ws:// 或 wss://)。WSS 会额外产出 SSL 时间(指标 3);WS 则该指标为 0。
pingCount:
- 为 0 时,不执行心跳测试,指标 9-12 不上报。
-
0 时,在 WebSocket 连接成功后循环发送 Ping 帧并等待 Pong 响应,计算丢包率和时延统计。
pingInterval:控制 Ping 发送频率。值越小,Ping 测试越密集,但总耗时可能增加;值过大可能导致在 timeout 内无法完成指定次数的 Ping。
pingSize:Ping 帧的负载大小。WebSocket 协议规定 Ping / Pong 可以携带应用数据,但部分服务器实现可能忽略或不支持大负载 Ping。
data:连接成功后发送的数据内容。若服务器是单向推送模式,可不配置;若需要请求-响应交互模式,需配置此项以触发服务器响应。
checkData:用于校验服务器返回的数据内容。校验失败设置错误码,但不影响网络性能指标。
host:用于覆盖 HTTP Host 头或 SNI。当 URL 使用 IP 地址但需要指定域名进行 TLS 握手时,配置此参数。
工作流程
- DNS 解析
- TCP 连接建立
- TLS 握手(WSS 时)
- 发送 WebSocket Upgrade HTTP 请求
- 等待 101 Switching Protocols 响应
- 发送用户数据(若配置了 data)
- 接收服务器推送数据
- 执行 Ping / Pong 测试(若配置了 pingCount)
- 关闭连接并汇总指标
错误码
| 错误码 | 含义 |
|---|
| 612702 | Websocket 升级失败(HTTP 状态码 <> 101 并且 < 400) |
| 612703 | Websocket Ping 全丢包 |
| 600xxx | HTTP 状态码 >= 400 时 |
| 612xxx | 其它标准错误 |