【问题标题】:Kafka Producer Integration Test DefinitionKafka Producer 集成测试定义
【发布时间】:2020-02-23 08:35:21
【问题描述】:

我有一个为 Kafka 主题生成事件的应用程序代码。所以现在我需要为它编写集成测试。在网上搜索后,我对集成测试的定义感到困惑,我应该使用 spring-kafka-test 库提供的嵌入式 Kafka 服务器还是应该使用我将要使用的实际 Kafka 集群来测试我的代码?

这里的集成测试是什么?有人请帮我解惑。

我的测试是:首先为某个主题生成一条记录,然后无论它是否实际生成,都使用它。

【问题讨论】:

    标签: apache-kafka integration-testing kafka-producer-api embedded-kafka


    【解决方案1】:

    每个项目可能有不同的需求,这就是为什么每个开发人员可能认为某事够或不够。

    更完整(但更昂贵)的测试套件将:

    1. 单独测试生产者
    2. 使用嵌入式 kafka 测试生产者
    3. 使用带有测试配置(一个节点,本地)的 kafka 实例测试生产者
    4. 使用 kafka 和 Staging environment 中的生产配置测试生产者(多节点,在实际服务器中但“测试环境”,作为 CI/CD 管道)
    5. 在实际生产中测试生产者对生产服务器进行压力测试,并确保产品性能良好(想想Simian Army

    这值多少钱取决于你:

    • 我会做 1 因为TDD
    • 3 也很便宜,使 2 变得多余,并让您放心,实际的“集成”正在发挥作用,我总是做 3。
    • 4 对于生产中的任何产品都是必要且常见的,它在 3 之上是自动化的。
    • 5 仅由少数公司实现,在实际生产环境中“攻击自己”实际上要花费大量金钱,以确保一切正常。

    每个测试层都与您赋予它的重要性一样重要,并且可能看起来像是“覆盖”,因为某些错误仅发生在下一层。

    【讨论】:

    • 你可以使用模拟生产者和消费者。很少需要外部流程,IMO
    猜你喜欢
    • 2020-05-26
    • 2020-05-18
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2018-03-29
    • 2019-11-02
    相关资源
    最近更新 更多