用途:LoongCollector E2E 测试指南,覆盖设计、编写、运行和调试端到端测试的全流程。
主要能力:基于 BDD Godog 框架,用 .feature 文件描述场景,引擎正则匹配步骤函数并传参;测试用例位于 test/e2e/test_cases/<case_name>/,含 case.feature 和可选的 docker-compose.yaml,步骤定义在 engine/steps.go 及各分类目录。环境 tag 为 @host、@k8s、@docker-compose 三选一,另加 @e2e。
使用方式:编写前先按基础功能、多数据类型、多配置共存、配置热加载、配置类型变更、反压与恢复、外部依赖失效、大数据量等维度确定测试矩阵;配置必须含 enable: true,只使用已注册步骤,wait {N} seconds 为 Then 类型,命名格式为 Test${功能名}${场景描述},持续运行插件配置中不要使用 global.ExcutionTimeout。本地运行前用 docker --version && docker compose version 检查环境;修改 C++ 代码后可执行 make e2e_image 完整构建,或用 docker create/docker cp/docker commit 增量替换二进制。运行示例:TEST_CASE=flusher_otlp_native go test -v -run "TestE2EOnDockerCompose$" -timeout 600s -count=1 ./...。测试失败后运行 bash .cursor/skills/e2e/scripts/e2e-cleanup.sh 或手动清理容器、网络和 test/e2e/config、test/e2e/onetime_pipeline_config、test/e2e/report 等目录。
适用场景:编写新 E2E 测试、运行现有测试、排查 E2E 测试失败。限制与已知陷阱:global.ExcutionTimeout 会使配置变为一次性,导致部分 input 报 unsupported input plugin;FlusherFile 必须是文件;多 Scenario 共享进程,异常退出后需手动清理,其他细节见 reference.md。