用途:在合并前审查 elastic-agent 集成测试改动(testing/integration/**),识别可能导致测试不稳定的风险。该仓库集成测试运行在真实 VM 与实时 ESS 栈上,主机速度、发行版、内核与并发负载各异,主要失败模式是本地和 PR 通过、数周后在较慢主机或不同发行版上偶发失败。
方法:阅读 diff,并读取足够上下文理解测试的 setup、断言与清理;对改动文件执行 Tier 1 机械扫描;对每个测试走 Tier 2 语义问题;检查 Tier 3 惯用法是否重复造轮子。报告需给出 file:line、类别、具体 flake 场景与修复,按可能性×影响面排序,能污染其他测试的问题优先。
Tier 1 机械红旗:Eventually 闭包内误用外层 t 的 require/assert;go func 内对 t 断言;测试等待用 context.Background();仅需文件内容却用 os.CreateTemp;硬编码 localhost:9200;Fleet 请求体硬编码 namespace default;OTel collector 未禁用内部遥测指标导致 :8888 冲突;固定监听端口;对实时管道数据做精确计数断言;对单调计数器用 ==;内联 YAML 重复键;filelog 未设 start_at: beginning;非致命 Eventually 后无保护索引;无 issue 链接的 t.Skip;Kibana/Fleet 请求结构体零值字段。
Tier 2 语义:查询是否由测试自身触发、过滤是否足够紧、@timestamp 水位是否在动作前捕获;等待是否轮询所断言的值、是否读取 agent 本地状态而非 checkin 滞后的 Kibana 镜像;异步流上“重置后断言不存在”是竞态;状态机应由可观察条件驱动;超时预算需超过 Fleet checkin 5 分钟长轮询,嵌套预算需大于内层之和;健康断言需区分故意破坏配置;环境与版本需固定发行版、运行时拓扑与动态版本;共享 ES 对象需按测试命名,清理须经 t.Cleanup 且能在失败路径存活。
Tier 3:使用 define.NewFixtureFromLocalBuild、fixture.Configure、fixture.Exec、IsHealthyOrDegradedFromOutput、tools.IsMinPolicyRevision、integration.StartMockES 等共享工具,避免手写等价实现。
限制:资料未提供安装命令、收费、平台支持范围等具体信息。