小马队

印第安纳波利斯小马队

Grafana Cyprus 将测试结果转换为持久可观测性数据

Grafana Cyprus 将测试结果转换为持久可观测性数据


Grafana Labs 发布了一种实用方法来监控 Cypress 测试套件,将测试结果转换为 Prometheus 指标并将其发送到 Grafana Cloud。这种方法允许团队在多次运行中跟踪测试失败、执行时间和不稳定测试,而不必仅仅依赖终端输出或来自各个执行的 CI 日志。

这种方法使用 Cypress 生命周期挂钩来捕获测试结果,使用 Prometheus PushGateway 来缓存来自短期测试作业的指标,并使用 Grafana Alloy 来抓取这些指标并将其转发到 Grafana Cloud。生成的数据可以可视化并用于发出警报,从而提供测试套件行为的长期视图。

Cypress 已经通过其插件生命周期公开了有用的信息。 Before:Run 挂钩可以为整个测试套件执行建立公共标识符,而 After:Specification 返回每个规范的结果,包括通过和失败计数、测试状态和持续时间。 Grafana 的实例将此信息转换为一小组涵盖各个测试、规范和完整运行的 Prometheus 指标。

这使得团队能够回答通过单个 CI 实施很难回答的问题。仪表板显示特定规范是否正在缓慢变化,测试是否间歇性失败,或者整个套件是否表现不佳。 GitHub Actions 运行标识符也会添加到指标中,从而允许在生成指标的 CI 运行中识别指标更改。

PushGateway 很重要,因为塞浦路斯的处决是短期工作。传统的 Prometheus 可能无法在废料退出之前到达测试过程,因此结果会被推送到中间机构,然后由中间机构进行混合。 Grafana 建议将此遥测视为测试的副作用,而不是测试结果的一部分:未能发布指标不应导致成功的测试运行失败。

这种方法反映了工程团队处理质量数据的方式发生了更广泛的转变。测试结果通常存储在 CI 系统或测试管理平台中用于报告,而生产遥测则被视为操作数据。将测试执行指标导出到相同的观察环境中提供了检查应用程序和基础设施行为以及软件质量的机会。

它对于识别趋势而不是个别失败特别有用。偶尔失败的测试可能会在 CI 中表现为一个孤立的问题。然而,连续指标显示其故障率正在增加,执行时间正在稳步下降,或者故障与特定功能或部署持续时间相关。

这种方法有意依赖于现有的开源组件,而不需要专有的 Cypress 监控机制:Cypress → Prometheus Metrics → PushGateway → Grafana Alloy → Grafana Cloud。 Grafana 广泛的观察平台支持日志、跟踪和其他基于 OpenTelemetry 的遥测以及与 Prometheus 兼容的指标。

它不会取代专用的测试管理或 CI 报告工具。 Cypress Cloud、Allure、Xray 等平台和 GitHub Actions 等 CI 系统提供丰富的特定于测试的视图、历史执行信息或与更广泛的开发工作流程的集成。 Grafana 的方法有所不同:它将测试结果视为时间序列操作数据,使它们与遥测工程师已经用来了解系统行为的数据一起使用。

这种区别有助于团队超越简单的通过/失败报告。工程团队不再只询问最新版本是否获得批准,而是可以开始跟踪测试执行持续时间、故障率、不稳定测试频率和套件级性能等指标,作为更广泛的工程运行状况指标的一部分。

更大的含义是,自动化测试本身可以产生更有用的遥测数据。随着测试套件变得越来越大、越来越分散,随着时间的推移保留和关联这些信息可以帮助团队及早检测性能退化,并创建工程系统测试可靠性和性能的可观察特征,而不是在 CI 工作完成后消失的指标。





Source link

Leave a Reply

Your email address will not be published. Required fields are marked *