自动化从谷歌浏览器生成HAR文件

cYr*_*rus 18 automation google-chrome spdy har

基本上我需要的是一种自动化以下操作结果的方法:

  1. 打开一个新标签;

  2. 在开发人员工具中打开"网络"选项卡;

  3. 加载URL;

  4. 选择"全部保存为HAR".

通常,建议的解决方案涉及使用PhantomJS,browsermob-proxypcap2har ; 那些不适合我的情况,因为我需要使用SPDY流量.

我试图深入研究谷歌Chrome扩展API,事实上我设法自动完成了一些任务,但对于生成HAR文件的问题仍然没有运气.现在这种方法特别有前景,但我仍然无法弄清楚如何使用它.

换句话说,我需要像这个实验在谷歌的家伙.请注意以下事项:

我们使用Chrome的远程调试界面与自定义客户端启动手机上的浏览器,清除其缓存和其他状态,启动网页加载,并接收Chrome开发人员工具消息以确定页面加载时间和其他性能指标.

有任何想法吗?


对于好奇,我最终得到了一个N​​ode.js模块,可以自动进行这种测试:chrome-har-capturer.这也使我有机会深入了解远程调试协议并为通用Chrome自动化编写更低级别的Node.js接口:chrome-remote-interface.

igr*_*rik 8

简短的回答是,没有办法直接获取您所追踪的数据.该getHAR方法仅适用于扩展DevTools本身的扩展.好消息是,您可以自己构建HAR文件而不会有太多麻烦 - 这正是phantom.js所做的.

  1. 通过远程调试启动Chrome
  2. 使用websocket连接在调试端口上连接到Chrome
  3. 启用"网络"调试,您也可以清除缓存等 - 请参阅网络API.
  4. 告诉浏览器导航到您要捕获的页面,Chrome会将所有请求元数据传回给您.
  5. 将网络数据按摩成HAR格式,ala phantom.js
  6. ...
  7. 利润.

首先,我有一个带有示例Ruby代码的帖子,您应该从步骤1-4开始:http://www.igvita.com/2012/04/09/driving-google-chrome-via-websocket -API /