基本上我需要的是一种自动化以下操作的结果的方法:
打开新标签页;
打开开发人员工具中的“网络”标签;
加载网址;
选择“全部保存为HAR”。
通常,建议的解决方案涉及使用PhantomJS,browsermob-proxy或pcap2har;那些不符合我的情况,因为我需要处理SPDY流量。
我试图深入研究Google Chrome Extensions API,事实上我设法自动化了一些任务,但对于生成HAR文件的问题仍然没有运气。现在this method特别有希望,但我仍然无法弄清楚如何使用它。
换句话说,我需要来自 Google家伙的this experiment 。请注意以下事项:
我们使用Chrome的remote debugging interface一个自定义客户端启动手机上的浏览器,清除其缓存和其他状态,启动网页加载,并接收Chrome开发者工具消息以确定页面加载时间和其他绩效指标。
有什么想法吗?
对于好奇的人,我最终得到了一个自动执行此类测试的Node.js模块:chrome-har-capturer。这也让我有机会深入了解Remote Debugging Protocol并为通用Chrome自动化编写更低级别的Node.js界面:chrome-remote-interface。
答案 0 :(得分:6)
简短的回答是,无法直接获取您所追踪的数据。 getHAR
方法仅适用于扩展DevTools本身的扩展。好消息是,您可以自己构建HAR文件而不会有太多麻烦 - 这正是what phantom.js does。
首先,我有一篇帖子,其中包含示例Ruby代码,您应该开始使用步骤1-4:http://www.igvita.com/2012/04/09/driving-google-chrome-via-websocket-api/
答案 1 :(得分:1)
现在有一个浏览器插件可以执行此操作:https://github.com/devtools-html/har-export-trigger
它使用WebExtensions DevTools API,并且我将它与Firefox和Chrome一起使用。
在此处查看我的Chrome浏览器代码:https://github.com/theri/web-measurement-tools/blob/master/load/load_url_using_chrome.py#L175
在Chrome中自动安装插件比在Firefox中复杂一些,但可行-我在本地提取了插件档案,然后在chrome_prefs.json中链接到它(请参见同一存储库)。
答案 2 :(得分:0)
不确定是否有帮助,HAR Recorder 使用 Chrome 调试协议记录 HAR 并生成 har 文件(不打开 devtools)。如果你想要一个变体,你可以分叉并对其进行更改。