K6:K6 websocket-如何解码K6中的压缩文本

K6:K6 websocket-如何解码K6中的压缩文本,websocket,load-testing,k6,Websocket,Load Testing,K6,我在websocket性能测试中使用了K6。当服务器上的内容被压缩时,我得到了“�0E�E�!�56���j0&��v�{�:�9�^�" 在控制台中打印。 我使用nodejs代码来处理来自服务器的相同消息。我得到了正确的文本 所以我的问题是如何解码K6中的压缩文本 我的K6脚本是 socket.on('message',函数(数据){ 控制台日志(数据类型); console.log(data.length) 如果(数据长度

我在websocket性能测试中使用了K6。当服务器上的内容被压缩时,我得到了“�0E�E�!�56���j0&��v�{�:�9�^�" 在控制台中打印。 我使用nodejs代码来处理来自服务器的相同消息。我得到了正确的文本

所以我的问题是如何解码K6中的压缩文本

我的K6脚本是

socket.on('message',函数(数据){
控制台日志(数据类型);
console.log(data.length)
如果(数据长度<200){
//我得到了“�0E�E�!�56���j0&��v�{�:�9�^�“在控制台里
控制台日志(数据);
}
//我试着解码它得到了“不正确的标题检查”
让text=pako.inflate(数据,{to:'string'});
}
正如我在中提到的,当您在选项中指定
{to:'string'}
时,pako的browserify版本似乎有一些问题。相反,您应该能够执行以下操作:

let binText = pako.inflate(data);
let strText = String.fromCharCode.apply(null, binText);
console.log(strText);

调用pako.inflate时,将得到“不正确的头检查”。似乎不是pako的问题,因为它在javascript代码中工作。K6使用go lang来处理websocket消息,并使用JS返回不同的内容。当我尝试时,它工作了。您是否只尝试了
pako.inflate(数据)
,而没有
{to:'string'}
options?您使用的是pako的browserify版本吗,因为node.js版本几乎肯定不起作用(这可能取决于某些特定于NodeJ的功能)?是的,我使用了pako的browserify版本。当我pako泄气字符串并将结果膨胀为字符串时,它起作用。但是当我尝试pako泄气套接字消息时,它返回“错误的头检查”。我尝试了不使用{to:'string'},相同的错误消息OK,所以这似乎是goja运行时或k6中包含的k6 corejs/bower库中的一个bug。我将重新打开旧的github版本,编辑新版本,以便在k6中本机支持websocket压缩。