我正在尝试为Kafka创建一个使用ZeroCode的测试框架。我正在尝试测试的产品是基于微服务和卡夫卡。我现在想做的就是连接到我的主题,并发布一条信息给它。但是,当我运行测试用例时,我会收到一个错误:在操作过程中说的异常:生成
Stacktrace
-------------------------- 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文件如下所示:
security.properties=SSL
ssl.keystore.password=<myPassword>
ssl.keystore.location=<myLocation>
kafka.bootstrap.servers=<myServer>我的JSON文件(测试场景,空键是我的主题的有效输入)如下所示:
{
"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",
}
}
]
}发布于 2020-03-31 13:11:26
除了下面,一切看起来都很好。你应该先修复这些,然后它就能正常工作了。
kafka.bootstrap.servers=<myServer>应该进入@TargetEnv("kafka_servers/kafka_test_server.properties")所指向的Kafka broker属性。producer.properties不应该有kafka.bootstrap.servers=...冗余条目。和属性文件如下:
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就这样。
@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项目中有一个工作示例,您可以在本地克隆和运行。
https://stackoverflow.com/questions/60894742
复制相似问题