Chromium Chronicle #14:向广告瀑布流添加测试

第 14 集:MTV 的 Zhaoyang Li 和 Eric Aleshire 在 TOK 播出(2020 年 10 月)
之前的几集

想要检测 Chrome 中新功能的回归问题吗?将您的测试添加到瀑布流(Chrome 的持续构建和测试基础架构)中!

Chrome 瀑布流中有许多构建器可以在各种平台上运行测试。本文介绍了如何向现有构建器添加测试套件。在继续之前,请考虑以下问题:

新测试应发布在全新的套件中,还是仅添加到现有套件中?

  • 测试套件按照源代码位置的接近度和主题整理测试。如果您的新测试在逻辑上无法放入任何现有套件,您可能需要一个新套件。

此类测试应该在公共构建器还是内部构建器上运行?

  • 如果代码位于内部代码库中,或者测试涉及机密数据,请使用内部构建器

这些测试应该在 CI、主 CI 还是提交队列(CQ) 中运行?

  • 请注意,CI 需要您自行监控,并且可用于测试优化或实验。
  • 执法官会定期监控主要 CI 测试
  • 失败时 CQ 阻止提交 CL,但会占用更多的基础架构资源。 新套件应始终先从 CI 开始,然后再升级到 CQ
  • 如果您不确定,该平台的 EngProd 团队可以协助您做出决定。

我已经有一个在 CI 环境中运行的测试套件,该如何将其添加到 CQ 中?/ 如果我需要新的构建器,该怎么办?

如何向现有构建器添加测试套件

如需将测试套件添加到现有构建器,您需要在 //src/testing/buildbot/ 中配置一些文件:

  1. gn_isolate_map.pyl 中为新测试套件创建一个密钥,并添加测试目标标签和类型信息。
  2. test_suites.pyl将该密钥添加到测试组。(您可以在 waterfalls.pyl 中找到从构建器名称到构建器上测试组的映射。)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. 更多微调。

    • mixins.pyl 包含可应用于不同组级别的一组测试的参数
    • variants.pyl 有助于在具有不同参数的多个实例中运行套件。
  4. 运行 generate_buildbot_json.py重新生成配置文件

之后,只需签入配置更改就简单了;运行此套件的构建器将自动选择新测试,并且结果将开始显示在网页界面中,有关构建器在瀑布流中失败的情况 - 请完成调试信息!