Cypress 通过插件钩子可在每个 spec 完成后获取测试结果。将这些结果转为 Prometheus 格式后,推送到 Pushgateway;Alloy 定时抓取 Pushgateway 并远程写入 Grafana Cloud Metrics。这样即可在 Grafana 中查看每个 spec 的通过/失败计数、耗时、单个测试的稳定性,并可设置告警。
关键步骤
- 在cypress.config.js的setupNodeEvents中使用before:run记录一次run_id,after:spec生成并推送指标。
- 生成的指标包括cypress_tests_total、cypress_spec_duration_seconds、cypress_test_success等,统一使用spec、run_id、ci_run_id三个标签。
- 推送通过PROMETHEUS_PUSHGATEWAY_URL环境变量配置;若未设置则跳过。
- 在 CI(如 GitHub Actions)中同样设置PROMETHEUS_PUSHGATEWAY_URL,Cypress 自动使用GITHUB_RUN_ID作为ci_run_id。
- Alloy 配置文件config.alloy设定抓取 Pushgateway 并写入 Grafana Cloud,凭证通过GRAFANA_CLOUD_RW_URL、GRAFANA_CLOUD_USER、GRAFANA_CLOUD_TOKEN提供。
部署示例
```bash
# 1. Pushgateway
docker run -d -p 9091:9091 prom/pushgateway
# 2. Alloy
export GRAFANA_CLOUD_RW_URL=
export GRAFANA_CLOUD_USER=YOUR_USER_ID
export GRAFANA_CLOUD_TOKEN=YOUR_TOKEN
alloy run config.alloy
# 3. Cypress
PROMETHEUS_PUSHGATEWAY_URL= npm run test:prometheus
```
在 Grafana 中即可创建面板,监控测试通过率、耗时趋势,甚至设置告警触发。
资源链接
GitHub: GitHub
#开发者 #工具 #Cypress #GrafanaCloud #Prometheus #Alloy #CI_CD #Nodejs #WebTesting
@DevToolboxHub