问题: 我目前正在使用 Apache JMeter 测试一个涉及多个 HTTP 请求和端口 443 的 WebSocket (WSS) 连接的系统。我已经配置了一个线程组来处理这些请求,而大多数时候 WebSocket 成功地传递了所有的请求块。数据,我遇到间歇性问题。
具体: 在某些情况下,WebSocket 不会传送所有预期的数据块。 有时,WebSocket 连接会完全失败。 尽管存在这些问题,当我验证数据时,数据似乎已成功保存到数据库中。 我正在寻求有关如何排查和解决 JMeter 中的这些 WebSocket 问题的建议。以下是我希望得到指导的几点:
调试 WebSocket 交付: 我可以使用什么策略来确保所有块都正确交付和处理?
处理 WebSocket 失败: JMeter 中 WebSocket 失败的常见原因有哪些,以及如何缓解?
与数据库保存的关联: 如何验证数据已成功保存到数据库并将其与 JMeter 中的 WebSocket 通信关联起来?
任何关于如何有效解决这些问题的见解或建议将不胜感激。
感谢您的协助。
为了解决这些问题,我尝试调整 WebSocket 配置中的连接和响应时间:
当前连接超时:400,000 毫秒 当前响应超时:18,000,00 ms 即使进行了这些调整,我仍然遇到以下问题:
成功但数据不完整:在某些情况下,WebSocket 显示成功状态,但并非所有块都已获取。
失败案例: 在某些情况下,WebSocket 连接显示为失败。
响应可能会被分成几个帧,您需要为每帧添加一个 WebSocket Sampler 实例,或者使用 While Controller 利用
${websocket.last_frame_final}
函数
如果不是这种情况,您可以通过将下一行添加到 log4j2.xml 文件(位于 JMeter 安装的“bin”文件夹中)来为 WebSocket 插件启用 JMeter 调试日志记录
<Logger name="eu.luminis" level="debug" />
如果 WebSocket 采样器的问题仅在特定负载下发生,则可能表明被测系统存在瓶颈