如何在JavaScript中获取Chrome性能指标

时间:2019-03-03 13:19:51

标签: javascript angular performance google-chrome testing

如果我使用Chrome开发工具,则可以执行以下操作:

  1. 打开chrome开发工具(右键单击chrome =>检查页面)
  2. 导航至“效果”标签
  3. 单击“记录”按钮
  4. 点击我的网络应用中的按钮
  5. 停止表演记录

然后我在chrome的“摘要”标签中得到一个漂亮的小馅饼:

enter image description here

我的问题是:

如何在javascript中开始记录,停止记录并获得这些摘要值(加载,脚本等)?

如果有人可以给我一些代码示例,那就太好了。

我的问题不是关于如何处理页面导航的问题,原因是我正在使用C#硒。我想做的是开始录制性能,使用Webdriver执行一些步骤,停止录制并评估性能。

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到:

第一个:

我建议您调查puppeteer。 这是由谷歌浏览器的家伙完成的项目,并且支持tracing。如您在这里https://pptr.dev/#?product=Puppeteer&version=v1.13.0&show=api-class-tracing所见,他们有一种方法检索生成的跟踪,您应该将其写入计算机以备后用。

tracing.start({})的调用使用了path,它指定了将跟踪写入到的文件。

tracing.stop()的调用可以很容易地与fs库集成在一起,以将Buffer的输出转换为文件,以后您可以使用chrome dev tools进行读取您不想将start函数与path参数一起使用。

唯一的缺点是,您不能真正重用Selenium脚本,并且即使认为Puppeteer声称更容易,也必须从头开始或多或少地开始。

第二个(难度稍高):

使用类似于该库的内容。 https://github.com/paulirish/automated-chrome-profiling

如果您遵循软件包的安装步骤,然后运行命令node get-timeline-trace.js并加载生成的文件(profile-XXXXXXXX.devtools.trace,则它是用JS编写的,并且可以按照示例中的预期正常运行。到chrome探查器,您将获得一个非常不错的报告。

我看到的唯一问题是,您将必须找到一种方法来执行将chrome实例传递给它的selenium脚本,而且我不知道这样做有多么容易(也许PID可以做到?)< / p>