如何在JMeter中解码WebSocket返回的UTF-8编码响应为文本
JMeter WebSocket UTF-8响应解码方案
自动解码(最简方式)
直接在WebSocket请求-响应取样器的「Response Data Encoding」输入框中填写UTF-8,JMeter会自动完成解码,你在「查看结果树」里就能看到正常的文本响应。
脚本手动解码(自动解码失效时使用)
如果自动解码未生效,给取样器添加一个JS223后置处理器,用Groovy脚本手动处理:
// 获取原始二进制响应数据 byte[] rawBytes = ctx.getPreviousResult().getResponseData(); // 以UTF-8编码解码为字符串 String decodedStr = new String(rawBytes, "UTF-8"); // 将解码后内容存入变量,供后续组件调用 vars.put("decodedWebSocketResp", decodedStr);
运行测试后,可通过${decodedWebSocketResp}变量获取解码后的响应内容。
全局默认编码配置
若希望所有取样器默认采用UTF-8解码:
- 打开JMeter安装目录下的
bin/jmeter.properties文件 - 找到
sampleresult.default.encoding配置项,将其值修改为UTF-8 - 重启JMeter后,所有HTTP、WebSocket等取样器的响应都会默认按UTF-8解码
内容的提问来源于stack exchange,提问作者Arpit Singh
相关产品推荐
相关产品推荐

