使自动化HAR文件生成从谷歌浏览器(Automatize HAR files generation

2019-08-03 04:01发布

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

  1. 打开一个新标签;

  2. 打开开发工具网络选项卡;

  3. 加载URL;

  4. 选择“保存所有为HAR”。

通常情况下,提出的解决方案涉及使用PhantomJS , browsermob代理 ,或pcap2har ; 因为我需要使用的那些不适合我的情况SPDY流量。

我试图潜入谷歌Chrome扩展API ,事实上我设法使自动化某些任务,但仍没有运气什么涉及HAR文件的产生。 现在, 这种方法是特别有希望的,但我仍然无法弄清楚如何我会使用它。

换句话说,我需要像这个实验 从谷歌的家伙 。 请注意以下几点:

我们使用了Chrome浏览器的远程调试接口与手机上启动浏览器中的自定义客户端,清除其高速缓存和其他国家,将启动一个网页负载和接收Chrome开发人员工具的信息来确定页面加载时间和其他性能指标。

有任何想法吗?


对于好奇,我结束了,它可以自动此类测试一个Node.js的模块: 铬HAR-的捕捉 。 这也给了我机会,深入挖掘远程调试协议 ,并编写通用的Chrome自动化水平较低,Node.js的接口: 铬远程接口 。

Answer 1:

简短的答案是,有没有办法让你直接后的数据。 该getHAR方法只适用于扩展意味着延长DevTools本身。 好消息是,你可以构建HAR文件,自己没有太多的麻烦-这正是什么phantom.js做 。

  1. 远程调试Chrome启动
  2. 连接到Chrome浏览器的调试端口与WebSocket连接
  3. 启用“网络”调试,还可以清除缓存,等等-见网络API 。
  4. 告诉浏览器导航到你想要捕捉的网页,和Chrome将传输所有请求的元数据还给你。
  5. 按摩网络数据转换成HAR格式,阿拉phantom.js
  6. ...
  7. 利润。

对于一个良好的开端,我有一个职位,与你应该开始使用步骤样本Ruby代码1-4: http://www.igvita.com/2012/04/09/driving-google-chrome-via-websocket -API /



Answer 2:

现在有插件做一个浏览器: 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(见同一个版本库)。



文章来源: Automatize HAR files generation from Google Chrome