Chrome:从 net-internals 获取 HTTP/2 日志

Posted

技术标签:

【中文标题】Chrome:从 net-internals 获取 HTTP/2 日志【英文标题】:Chrome: Obtain HTTP/2 Log from net-internals 【发布时间】:2017-07-06 19:09:18 【问题描述】:

有没有办法以编程方式从中获取 HTTP/2 日志

chrome://net-internals/#http2

通过 selenium 或命令行选项?

我想使用 HTTP/2 进行自动化测试,并且我正在使用 selenium-chromedriver。

我知道您可以从 chromedriver 访问 perflog,但是这些似乎隐藏了许多特定于 HTTP/2 的内容,例如优先级或流 ID。

【问题讨论】:

【参考方案1】:

可以用--log-net-log=output.json启动chrome。

但是,目前 chromedriver 中存在截断日志的错误。 https://bugs.chromium.org/p/chromedriver/issues/detail?id=1688#c1

【讨论】:

【参考方案2】:

您可以使用 Fiddler Core C# API

Fiddler.FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
Fiddler.FiddlerApplication.Startup(8888, FiddlerCoreStartupFlags.Default);
Fiddler.FiddlerApplication.AfterSessionComplete += delegate(Fiddler.Session oS)
        
                Monitor.Enter(oAllSessions);
                oAllSessions.Add(oS);
                Monitor.Exit(oAllSessions);
        ;
Fiddler.FiddlerApplication.Shutdown();

查看官方文档,您需要更多代码,但最终,您将拥有所需的一切。

【讨论】:

以上是关于Chrome:从 net-internals 获取 HTTP/2 日志的主要内容,如果未能解决你的问题,请参考以下文章

Chrome停止请求15秒

说一说从输入URL到页面呈现都发生了什么?

浏览器dns缓存问题

谷歌chrome://chrome-urls/

去除chrome网站https的安全检测

chrome中清除dns缓存