html - 性能测试 - 多个 websocket 连接
问题描述
我需要测试服务器接收越来越多的 websocket 连接的“阻力”,通过 MQTT 发送数据。为此,我创建了一个带有“onLoad”指令的简单网页,以便在加载时,它通过 websocket 连接到服务器并开始接收数据。为了模拟(并增加 websocket 连接的数量),我想到了带有打开页面的 Loop 控制器的 JMeter。但是,我注意到当 JMeter 加载页面时,它不会在页面中建立 websocket(换句话说,它丢弃了“onLoad”)javascript 指令。我缺少一个特殊的 JMeter 配置吗?还有其他方法可以实现我想要的吗?非常感谢 - 克里斯蒂安
解决方案
根据JMeter 项目主页:
JMeter 不是浏览器,它在协议级别工作。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,是多个浏览器);但是 JMeter 并不执行浏览器支持的所有操作。特别是,JMeter 不执行 HTML 页面中的 Javascript。它也不像浏览器那样呈现 HTML 页面(可以将响应视为 HTML 等,但时间不包含在任何示例中,并且一次只显示一个线程中的一个示例)。
因此,JMeter 的HTTP 请求采样器完全忽略了您的onload 事件,因为它不执行任何功能。
如果您想对 websocket 后端进行负载测试,您需要使用JMeter WebSocket 采样器并使用相关采样器建立连接/发送有效负载。该插件可以使用JMeter Plugins Manager安装,有JMeter WebSocket Samplers - A Practical Guide文章和一些示例 JMeter 脚本,您可以将其用作参考
推荐阅读
- sql - 对我的 SQL 查询有疑问。它总是重复我应该是唯一的 id
- css - 如何使img与div大小相同
- javascript - 用对象内部的项目替换javascript数组
- reactjs - Express cors 不允许凭据
- python - 如何在选择图像中的轮廓时避免对图像(条形)进行分组?
- node.js - 仅使用 DynamoDB 中的分区键进行查询
- sql - 将数据从一个表复制到另一个表 - 忽略重复 Postgresql
- batch-file - 如何替换父批处理文件?
- html - 如何为响应式网页设计设置最小宽度,然后让设备缩放以适应该点以下?
- postgresql - postresql group by 查询耗时太长