Chromium Chronicle #20:基准化分析自动化测试框架

第 20 集:作者:John Chen,位于华盛顿州贝尔维尤(2021 年 4 月)
上一集

速度是 Chrome 的四大核心原则之一。添加基准可以轻松地防止性能下降,并有助于提高性能。良好的基准测试的迭代周期较短,可以比 UMA 更早发现性能下降问题,并且非常适合衡量新功能的性能。

在实验室中定期运行基准。发现回归问题时,bisect 会自动找到导致问题的 CL 并将 bug 分配给 CL 所有者。

Chrome 基准测试将一系列网页互动(称为故事)与性能衡量相结合。类似的用例会被划分到基准自动化测试框架中。新的基准通常适用于某个现有自动化测试框架

  • 系统运行状况
  • 正在加载
  • 内存
  • 渲染
  • 电源
  • 初创公司
  • V8 运行时
  • 媒体
  • WebRTC
  • 新闻媒体
  • 闪烁性能

遥测框架会重放记录的故事,以模拟用户与 Chrome 的互动,同时收集记录 Chrome 活动的跟踪记录。故事结束后,框架会运行各种性能指标来分析跟踪记录并计算性能结果。

通过添加新故事,您可以使用某个现有自动化测试框架中的现有指标,涵盖 Chrome 中的大多数新的性能测试用例。您还可以收集其他跟踪记录,向现有基准添加更多指标,或向浏览器传递其他标志。

对于不适用于其他自动化测试框架的一次性情况,请使用 Blink Perf。在 Blink Perf 中,您可以衡量一次性页面上的跟踪事件。

确保基准故事简洁明了,并且仅包含完成您的场景所需的最少量互动。如果测试用例很复杂,则可能很难自动化或者可能不稳定。

将测试数量限制为可涵盖最重要的用例的最小数量。基准化分析基础架构的维护成本高昂。如需查看受支持硬件的列表,请参阅 Chrome Speed 设备

衡量效果的方法不止一种。基于遥测的基准测试从外部进程控制 Chrome,但这并不总是能够提供所需的控制级别。作为替代方案,基于 gtest 的基准测试允许测试代码与 Chrome 代码共享相同的进程。您还可以考虑使用其他性能工具,例如使用 UMA 衡量用户设备的性能,而不是在实验室中衡量性能。

想要详细了解 Chrome 基准化分析?请与 telemetry@chromium.org 联系。

其他资源