自动浏览器 Javascript 执行时间数据

时间:2021-02-01 15:59:08

标签: selenium google-chrome performance-testing trace

我希望能够在 Chrome 中运行 selenium 期间捕获摘要浏览器性能指标。我希望能够捕获高级指标,以便团队可以比较不同版本的指标,以便在发生重大变化和需要进行更多调查时提醒我们。 Chrome 开发工具所需输出的示例如下:

enter image description here

我相信在运行 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": ""
  },
   ...

我应该寻找哪些日志来构建这些汇总指标?

0 个答案:

没有答案