如何自动化kafka测试

xriantvc  于 2021-06-08  发布在  Kafka
关注(0)|答案(4)|浏览(565)

我们开发了一个小型系统,使用kafka对数据进行排队,然后使用这些数据为用户下订单。我们已经手动测试了某些东西,但是现在我们的目标是自动化这个过程。有没有客户机可以测试它。在google上搜索的时候,我找到了使用kafka客户机本身进行单元测试的方法,但我的目标是测试整个系统。请引导
编辑:我们的目的只是api测试,即只是后端而不是ui

oknwwptz

oknwwptz1#

您可以在集成测试中以编程方式启动kafka,kafka使用zookeeper,因此首先看一下zookeeper testingserver—这个类的示例使用给定的端口创建并启动zk服务器。
接下来看看kafkaserverstartable.scala,您必须提供指向内存中zk服务器并调用的配置 startup() 方法,下面是一些代码:

import kafka.server.KafkaConfig; 
import kafka.server.KafkaServerStartable;
import java.util.Properties;

public KafkaTest() {
    Properties properties = createProperties();
    KafkaConfig kafkaConfig = new KafkaConfig(properties);
    KafkaServerStartable kafka = new KafkaServerStartable(kafkaConfig);
    kafka.startup();
}

希望这些帮助:)

s8vozzvw

s8vozzvw2#

据我所知,您希望从消息开始实现端到端测试。我和最近的一些人研究了使用kafka测试事件驱动系统的库、工具和框架。
我们发现zerocode是一种使用json或yaml等声明性语言的自动化api测试。它支持rest、soap和我们感兴趣的消息传递。它发送和使用来自主题的消息,并最终做出Assert,易于学习和使用。以下是有关代码的更多详细信息的链接。这似乎是一个很好的选择,虽然我们正在开始使用它。
您需要运行kafka代理和依赖项才能使此解决方案正常工作,但没有什么比docker compose和/或一些脚本更能为测试带来环境。
另一种方法是使用kafka库实现您自己的项目,并使用这些库在测试中发送和接收消息。
不幸的是,我们找不到更多的选择。Kafka提出要制作一套测试工具,但目前还没有进展。

0ve6wy6x

0ve6wy6x3#

您可以通过在 docker 容器。如果你使用apache kafka-clients:2.1.0 ,则在生成或使用记录时不需要在api级别处理zookeeper。
停靠kafka和测试有助于覆盖单个节点和多节点kafka集群中的场景。这样你就不必一次测试模拟/记忆中的Kafka,然后再测试真正的Kafka。
如果您有太多的测试场景要覆盖,您可以使用kafka声明性测试,比如 docker-compose 样式,通过它可以消除kafka客户机api编码。
这里有一些简单的例子来验证产品和消费。

pjngdqdw

pjngdqdw4#

下面的答案是谁的人仍然在寻找一个工作的样本。
使用kafkaserverstartable在内存中创建用于集成测试的示例kafka。任何人都可以为他们的用例扩展这个功能。
不需要修改。轻松下载和运行。
添加了示例测试用例以涵盖主题的生成和使用消息。
在此处 checkout 链接-->kafka集成测试

相关问题