首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用ZeroCode在卡夫卡主题上发布json消息

无法使用ZeroCode在卡夫卡主题上发布json消息
EN

Stack Overflow用户
提问于 2020-03-27 22:07:15
回答 1查看 450关注 0票数 0

我正在尝试为Kafka创建一个使用ZeroCode的测试框架。我正在尝试测试的产品是基于微服务和卡夫卡。我现在想做的就是连接到我的主题,并发布一条信息给它。但是,当我运行测试用例时,我会收到一个错误:在操作过程中说的异常:生成

Stacktrace

代码语言:javascript
复制
-------------------------- BDD: Scenario:Produce a message to kafka topic - vanilla -------------------------

27 Mar 2020 10:43:21,531 INFO  [main] runner.ZeroCodeMultiStepsScenarioRunnerImpl | 
### Executing Scenario -->> Count No: 0
27 Mar 2020 10:43:21,531 INFO  [main] runner.ZeroCodeMultiStepsScenarioRunnerImpl | 
### Executing Step -->> Count No: 0
---------------------------------------------------------
kafka.bootstrap.servers - <myKafkaBootstrapServer>
---------------------------------------------------------
27 Mar 2020 10:43:21,681 INFO  [main] client.BasicKafkaClient | <myKafkaBootstrapServer>, topicName:executions.enriched, operation:produce, requestJson:{"recordType":"JSON","records":[{"value":"EquityExecution"}]}
27 Mar 2020 10:43:21,683 ERROR [main] client.BasicKafkaClient | Exception during operation:produce, topicName:executions.enriched, error:null
java.lang.RuntimeException: java.lang.NullPointerException
    at org.jsmart.zerocode.core.kafka.client.BasicKafkaClient.execute(BasicKafkaClient.java:50)
    at org.jsmart.zerocode.core.engine.executor.JsonServiceExecutorImpl.executeKafkaService(JsonServiceExecutorImpl.java:102)
    at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.runScenario(ZeroCodeMultiStepsScenarioRunnerImpl.java:190)
    at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.runLeafJsonTest(ZeroCodeUnitRunner.java:198)

我使用.properties文件提供代理和SSL凭据。然后发送一个测试JSON。如果发布成功,那么我计划使用某个主题并断言值,从而对服务执行集成测试。

请帮助我解决这个问题,因为我在网上找不到任何有意义的信息来解决这个问题。非常感谢!

我的.properties文件如下所示:

代码语言:javascript
复制
security.properties=SSL
ssl.keystore.password=<myPassword>
ssl.keystore.location=<myLocation>
kafka.bootstrap.servers=<myServer>

我的JSON文件(测试场景,空键是我的主题的有效输入)如下所示:

代码语言:javascript
复制
{
    "scenarioName": "Produce a message to kafka topic - vanilla",
    "steps": [
        {
            "name": "produce_step",
            "url": "kafka-topic:my.topic",
            "operation": "produce",
            "request": {
                "records":[
                    {
                        "value": "My test value"
                    }
                ]
            },
            "assertions": {
                "status" : "Ok",
             }
        }
    ]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-31 13:11:26

除了下面,一切看起来都很好。你应该先修复这些,然后它就能正常工作了。

  1. kafka.bootstrap.servers=<myServer>应该进入@TargetEnv("kafka_servers/kafka_test_server.properties")所指向的Kafka broker属性。
  2. producer.properties不应该有kafka.bootstrap.servers=...冗余条目。

和属性文件如下:

代码语言:javascript
复制
                          kafka_test_server.properties

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# kafka bootstrap servers comma separated
# e.g. localhost:9092,host2:9093
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
kafka.bootstrap.servers=localhost:9092
kafka.producer.properties=producer.properties
kafka.consumer.properties=consumer.properties

就这样。

代码语言:javascript
复制
@TargetEnv("kafka_servers/kafka_test_server.properties")
@RunWith(ZeroCodeUnitRunner.class)
public class KafkaProduceTest {

    @Test
    @JsonTestCase("kafka/produce/test_kafka_produce.json")
    public void testProduce() throws Exception {
    }

}

KafkaProduceTest在GitHub Kafka HelloWorld项目中有一个工作示例,您可以在本地克隆和运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60894742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档