我希望能够在 Chrome 中运行 selenium 期间捕获摘要浏览器性能指标。我希望能够捕获高级指标,以便团队可以比较不同版本的指标,以便在发生重大变化和需要进行更多调查时提醒我们。 Chrome 开发工具所需输出的示例如下:
我相信在运行 selenium 测试时,我可以使用 chrome 跟踪功能获取大部分数据。我有一些代码可以在这里获取一些跟踪数据:
const chromeOptions = {
perfLoggingPrefs: {
"traceCategories": "toplevel,disabled-by-default-devtools.timeline.frame,blink.console,disabled-by-default-devtools.timeline,benchmark"
},
args: ["--enable-gpu-benchmarking", "--enable-thread-composting"]
}
chromeCapabilities.set('goog:chromeOptions', chromeOptions);
this.driver = new Builder()
.forBrowser('chrome')
.withCapabilities(chromeCapabilities)
.usingServer(seleniumUrl)
.setLoggingPrefs({performance: "ALL", browser: "ALL", driver: "ALL"})
.build();
// And around test cases:
const performanceLog = await this.driver.manage().logs().get('performance');
我从我的代码中获得了跟踪日志文件 - 但我不确定如何将这些日志文件转换为类似于 Chrome Devtools 提供的那些的摘要级别指标。日志看起来像这样:
[
{
"level": "INFO",
"message": "{\"message\":{\"method\":\"Tracing.dataCollected\",\"params\":{\"args\":{\"src_file\":\"../../gpu/command_buffer/service/scheduler.cc\",\"src_func\":\"RunNextTask\"},\"cat\":\"toplevel\",\"dur\":993,\"name\":\"ThreadControllerImpl::RunTask\",\"ph\":\"X\",\"pid\":40434,\"tdur\":450,\"tid\":775,\"ts\":577139722567.0,\"tts\":1355085}},\"webview\":\"browser\"}",
"timestamp": 1612187986443,
"type": ""
},
{
"level": "INFO",
"message": "{\"message\":{\"method\":\"Tracing.dataCollected\",\"params\":{\"args\":{},\"cat\":\"disabled-by-default-devtools.timeline\",\"dur\":695,\"name\":\"RunTask\",\"ph\":\"X\",\"pid\":40434,\"tdur\":550,\"tid\":775,\"ts\":577139723586.0,\"tts\":1355562}},\"webview\":\"browser\"}",
"timestamp": 1612187986443,
"type": ""
},
{
"level": "INFO",
"message": "{\"message\":{\"method\":\"Tracing.dataCollected\",\"params\":{\"args\":{\"src_file\":\"../../gpu/command_buffer/service/scheduler.cc\",\"src_func\":\"RunNextTask\"},\"cat\":\"toplevel\",\"dur\":686,\"name\":\"ThreadControllerImpl::RunTask\",\"ph\":\"X\",\"pid\":40434,\"tdur\":542,\"tid\":775,\"ts\":577139723590.0,\"tts\":1355565}},\"webview\":\"browser\"}",
"timestamp": 1612187986443,
"type": ""
},
{
"level": "INFO",
"message": "{\"message\":{\"method\":\"Tracing.dataCollected\",\"params\":{\"args\":{},\"cat\":\"benchmark,viz\",\"name\":\"Display::FrameDisplayed\",\"ph\":\"I\",\"pid\":40434,\"s\":\"t\",\"tid\":39683,\"ts\":577139724269.0,\"tts\":248609}},\"webview\":\"browser\"}",
"timestamp": 1612187986443,
"type": ""
},
...
我应该寻找哪些日志来构建这些汇总指标?