19

我正在尝试使用Selenium Web Driver来自动化我的浏览器集成测试。我看到Chrome 开发工具带有一个控制台 API,用于从 JavaScript 内部调用某些开发工具功能。

理想情况下,从我的 Java/JUnit 集成测试中,我可以启动 Chrome Dev Tool 内存分析器(可能还有其他一些工具),运行我的 WebDriver 测试(实例化 Chrome 浏览器实例,操作 DOM 元素等),然后停止探查器,然后检查探查器的结果以查看是否存在任何内存泄漏。

这个概念是否可行,或者我可以出去吃午饭了吗?为什么/为什么不?

似乎 API 已经有一个console.profile()用于启动分析会话,以及一个console.profileEnd(). 所以理论上我可以让 WebDriver 调用这两种方法并在它们之间运行测试。

我认为缺少的链接然后以编程方式与分析会话的结果进行交互......

4

2 回答 2

7

您实际上可以使用上面@loislo 提到的调试器协议——您可能会发现链接https://developer.chrome.com/devtools/docs/debugger-protocol更有用

只需在打开 Chrome 并远程调试时添加标志!:)

于 2015-02-25T01:00:48.263 回答
6

Chrome DevTools 有两部分,带有 UI 的前端和渲染器原生代码中的后端。这些部分通过协议相互协作。协议在protocol.js 文件中描述

当 Chrome 暴露可用于与 DevTools 的后端部分交互的 tcp 套接字时,Chrome 可以在远程调试模式下工作。此功能在 Chrome 浏览器 遥测工具集中积极使用

这个工具集是用 python 编写的,我们让它与当前版本的协议保持同步。该工具集包含用于处理堆分析器部分和 DevTools 其他部分的代码

于 2014-01-05T01:12:12.873 回答