尝试使用JMeter WebSocket Samplers plugin连接到websocker服务器,但收到以下响应错误。
响应代码:418响应消息:Got unexpected status 418 with statusLine:HTTP/1.0 418未知代码
尝试使用JMeter WebSocket Samplers plugin连接到websocker服务器,但收到以下响应错误。
响应代码:418响应消息:Got unexpected status 418 with statusLine:HTTP/1.0 418未知代码
2条答案
按热度按时间nr9pn0ug1#
根据HTTP Status Code 418定义,当您使用Hyper Text Coffee Pot Control Protocol操作茶壶时会发生错误,请仔细检查
${BASE_URL_1}
变量值,并确保它指向咖啡壶,而不是茶壶。现在认真地说:我们无法通过查看不完整的低分辨率屏幕截图来诊断问题,因此我只能提供一个通用的建议:
1.仔细检查请求中使用的所有这些变量,如
${connectionId}
,${token}
等。使用调试采样器获得预期值1.使用browser developer tools(或作为sniffer tool)的“网络”选项卡捕获来自浏览器(或其他应用程序)的成功请求
1.使用ViewResultsTree侦听器(或嗅探器工具)从JMeter捕获失败的请求
1.比较请求,识别差异,修改JMeter配置,使其发送与浏览器完全相同的请求(除了必须为correlated的动态值)
1.一旦你发送同样的请求,你应该得到同样的响应,而不是这个有趣的4月1日错误消息
q8l4jmvw2#
我成功地打开了WebSocket连接。最初,我也得到了JMETER坏请求,但在 Postman 这是成功的。一开始我对第一口产生了怀疑。因为POSTMAN没有在请求中发送任何端口,而JMETER没有准备好发送没有端口的请求(必填字段)。然后我在两个地方都添加了端口443。POSTMAN仍然能够成功发送请求。
然后仔细比较了来自两个工具的请求,注意到POSTMAN在“bearer”和令牌字符串之间发送了%20,如下所示:accessToken=bearer%20eyJ0eXAi...,而JMETER中WebSocket采样器只是发送服务器不接受的白色。
然后我在jmeter请求中添加了%20,服务器用机器人手欢迎它并给出绿色信号。
**解决方案:**只需像我一样在Jmeter Samapler中添加%20即可,如下图快照JMETER websocket sampler所示