SuperAPI AI 工具集

kafka-shadowtraffic-java

测试与质量

查看项目

更新于 10-15 23:58

技能介绍

用途:为 Kafka 主题生成自包含的 JUnit 5 测试类,通过 TestContainers 在进程内启动 Kafka 和 ShadowTraffic,在测试运行期间向目标主题填充合成数据。目标主题、环境与项目路径由 $ARGUMENTS 传入。

主要能力:先调用 kafka-shadowtraffic 技能发现主题、schema 与序列化格式并生成基础 shadowtraffic-config.json;随后检测项目结构(Maven/Gradle、测试目录、包名、已有 TestContainers 依赖、Java 版本、是否需要 Schema Registry);在生成前强制确认;将配置适配到 TestContainers 共享 Docker 网络;写出 src/test/resources/shadowtraffic-config.json 并用 ShadowTraffic linter 校验;生成 Java 测试类;更新构建文件依赖;最后给出运行说明。

使用方式:跟踪九步清单执行。第 1 步运行 kafka-shadowtraffic,需在生成器 localConfigs 中加入 maxEvents(默认 100)以免测试挂起。第 3 步为硬性确认门。配置适配时 bootstrap.servers 改为 kafka:9092,schema.registry.url 改为 http://schema-registry:8081。linter 命令使用 shadowtraffic/shadowtraffic:latest 加 --action lint,挂载配置文件到 /home/config.json。Java 类使用 @Testcontainers,静态 Network,KafkaContainer 别名 kafka,按需加 Schema Registry 容器,ShadowTraffic 容器通过 dependsOn 保证启动顺序;六个 LICENSE_* 环境变量一律取自 System.getenv(),不得硬编码,缺省会明确报错;消费端用 kafka.getBootstrapServers() 轮询,超时 30 秒。

适用场景:为具备 Docker 环境的 Maven 或 Gradle 项目编写 Kafka 集成测试,覆盖 Avro、JSON Schema、Protobuf 或无 schema 的纯 JSON 主题,已有 shadowtraffic-config.json 时可直接复用。

限制:需要有效的 ShadowTraffic 许可证环境变量,需本地 Docker,Schema Registry 容器仅在 Avro 等类型时需要;生成的 @Test 方法只是起点,用户需自行补充领域断言;资料未提供收费与价格信息。