selenium - Websocket调用上的Selenium Jmeter差异
问题描述
我正在研究 Selenium 和 JMeter 之间的差异,我偶然发现了以下关于 Selenium 的声明:
即使 WebSocket 可能被封装到 Web 会话中并影响浏览器,用户/Selenium 也不会意识到这一点。因此,我们将使用 JMeter 来测试 WebSocket。
这让我感到困惑,因为即使 Selenium 无法检测到该特定场景,Selenium 仍然使用像 JAVA 这样的编程语言,因此您仍然可以使用 Java 来完成 JMeter 在这种情况下所做的相同事情。或者我在这里错过了什么?
解决方案
我不知道你在读什么,但是我建议停止引用这个来源,因为他们并没有真正意识到他们在说什么。
根据WebSocket API文档:
WebSocket API 是一种先进的技术,可以在用户浏览器和服务器之间打开双向交互通信会话。使用此 API,您可以向服务器发送消息并接收事件驱动的响应,而无需轮询服务器以获取回复。
Selenium是浏览器自动化框架,因此您可以“免费”获得此 WebSocket API 支持。如果您需要执行一些自定义用例,您可以使用JavascriptExecutor调用WebSocket对象函数。
当谈到JMeter时:
JMeter 不是浏览器,它在协议级别工作。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,是多个浏览器);但是 JMeter 并不执行浏览器支持的所有操作。特别是,JMeter 不执行 HTML 页面中的 Javascript。它也不像浏览器那样呈现 HTML 页面(可以将响应视为 HTML 等,但时间不包含在任何示例中,并且一次只显示一个线程中的一个示例)。
因此 JMeter 不会触发任何与 WebSocket 相关的事件,除非您使用插件并手动打开连接、发送消息、读取响应等。
推荐阅读
- java - ModelMapper 中的自定义转换器不起作用
- r - 尝试将数据集转换为时间序列时出错
- firebase - Flutter firebase静默登录不起作用
- javascript - 查找连续元素并将所有周围的 div 分组
- excel - VBA复制启用宏的工作簿并从列表中重命名每个工作簿
- javascript - 无法理解三个相似 JavaScript 代码片段的时间差异
- python - 读取 config.txt python 元组格式
- jenkins - 矩阵作业工作区文件与父作业工作区不同
- tensorflow - 我在使用 tensorflow 进行车牌识别项目……在训练模型(脚本)时,它说模块错误 pycocotools。安装时说
- jmeter - Jmeter上GUI模式和非GUI模式之间的平均响应时间差异巨大