apache-kafka - Pepper-box 的 JMeter Kafka 测试。Jmeter错误:PlaintTextLoadGenerator:请确保...参数正确传递
问题描述
我想用 JMeter 做一个 kafka 性能测试。我遵循下一个教程:
我得到了这个错误:
2021-09-01 18:13:04,582 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2021-09-01 18:13:04,583 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2021-09-01 18:13:04,584 INFO o.a.j.p.j.s.JavaSampler: Created class: com.gslab.pepper.sampler.PepperBoxKafkaSampler. Uses tearDownTest:
2021-09-01 18:13:04,584 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2021-09-01 18:13:04,733 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2021-09-01 18:13:04,733 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2021-09-01 18:13:04,733 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2021-09-01 18:13:04,733 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 delayedStart=false
2021-09-01 18:13:04,734 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2021-09-01 18:13:04,734 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2021-09-01 18:13:04,752 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1
2021-09-01 18:13:04,757 ERROR c.g.p.l.i.PlaintTextLoadGenerator: Please make sure that expressions functions are already defined and parameters are correctly passed.
com.gslab.pepper.exception.PepperBoxException: java.lang.NullPointerException
at com.gslab.pepper.input.SchemaTranslator.getPlainTextMsgIterator(SchemaTranslator.java:54) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.input.SchemaProcessor.getPlainTextMessageIterator(SchemaProcessor.java:36) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.loadgen.impl.PlaintTextLoadGenerator.<init>(PlaintTextLoadGenerator.java:34) [pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.config.plaintext.PlainTextConfigElement.iterationStart(PlainTextConfigElement.java:53) [pepper-box-1.0%20(1).jar:?]
at org.apache.jmeter.control.GenericController.fireIterationStart(GenericController.java:399) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.GenericController.fireIterEvents(GenericController.java:391) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.GenericController.next(GenericController.java:160) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.LoopController.next(LoopController.java:134) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:91) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254) [ApacheJMeter_core.jar:5.4.1]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
Caused by: java.lang.NullPointerException
at com.gslab.pepper.input.compile.InMemoryJavaCompiler.compileSchemaClass(InMemoryJavaCompiler.java:39) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.input.SchemaTranslator.getPlainTextMsgIterator(SchemaTranslator.java:47) ~[pepper-box-1.0%20(1).jar:?]
... 10 more
2021-09-01 18:13:04,757 ERROR c.g.p.c.p.PlainTextConfigElement: Failed to create PlaintTextLoadGenerator instance
com.gslab.pepper.exception.PepperBoxException: com.gslab.pepper.exception.PepperBoxException: java.lang.NullPointerException
at com.gslab.pepper.loadgen.impl.PlaintTextLoadGenerator.<init>(PlaintTextLoadGenerator.java:37) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.config.plaintext.PlainTextConfigElement.iterationStart(PlainTextConfigElement.java:53) [pepper-box-1.0%20(1).jar:?]
at org.apache.jmeter.control.GenericController.fireIterationStart(GenericController.java:399) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.GenericController.fireIterEvents(GenericController.java:391) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.GenericController.next(GenericController.java:160) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.LoopController.next(LoopController.java:134) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:91) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254) [ApacheJMeter_core.jar:5.4.1]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
Caused by: com.gslab.pepper.exception.PepperBoxException: java.lang.NullPointerException
at com.gslab.pepper.input.SchemaTranslator.getPlainTextMsgIterator(SchemaTranslator.java:54) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.input.SchemaProcessor.getPlainTextMessageIterator(SchemaProcessor.java:36) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.loadgen.impl.PlaintTextLoadGenerator.<init>(PlaintTextLoadGenerator.java:34) ~[pepper-box-1.0%20(1).jar:?]
... 8 more
Caused by: java.lang.NullPointerException
at com.gslab.pepper.input.compile.InMemoryJavaCompiler.compileSchemaClass(InMemoryJavaCompiler.java:39) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.input.SchemaTranslator.getPlainTextMsgIterator(SchemaTranslator.java:47) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.input.SchemaProcessor.getPlainTextMessageIterator(SchemaProcessor.java:36) ~[pepper-box-1.0%20(1).jar:?]
at com.gslab.pepper.loadgen.impl.PlaintTextLoadGenerator.<init>(PlaintTextLoadGenerator.java:34) ~[pepper-box-1.0%20(1).jar:?]
... 8 more
2021-09-01 18:13:04,757 ERROR o.a.j.t.JMeterThread: Test failed!
java.lang.NullPointerException: null
at com.gslab.pepper.config.plaintext.PlainTextConfigElement.iterationStart(PlainTextConfigElement.java:63) ~[pepper-box-1.0%20(1).jar:?]
at org.apache.jmeter.control.GenericController.fireIterationStart(GenericController.java:399) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.GenericController.fireIterEvents(GenericController.java:391) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.GenericController.next(GenericController.java:160) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.control.LoopController.next(LoopController.java:134) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:91) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254) [ApacheJMeter_core.jar:5.4.1]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
2021-09-01 18:13:04,758 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1
2021-09-01 18:13:04,758 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2021-09-01 18:13:04,758 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
在我看到这篇文章后: Jmeter Error: PlaintTextLoadGenerator... 我安装了 JDK(win10),但仍然出现同样的错误,所以可能这就是重点。
我错过了什么?
谢谢!
解决方案
您忘记包含 Java 请求采样器的屏幕截图,这可能是您以不受支持的方式使用它的情况。就像您尝试使用 JMeter 函数或变量一样 - 它会失败,您将不得不使用模板函数(如果预定义的函数不适合您的情况,可以创建自己的函数)
您的
pepper-box-1.0%20(1).jar
文件看起来很可疑,听起来您将插件下载到 JMeter 安装的“lib/ext”文件夹中两次,请删除任何多余的副本,因为它可能会导致问题如果您在JMeter Classpath中有Kafka java 客户端库,则不需要任何插件即可向 Kafka 发送消息,您可以使用JSR223 Sampler和此示例Groovy代码来完成:
import org.apache.kafka.clients.producer.KafkaProducer import org.apache.kafka.clients.producer.ProducerRecord def props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("acks", "all"); props.put("retries", 0); props.put("batch.size", 16384); props.put("linger.ms", 1); props.put("buffer.memory", 33554432); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); def producer = new KafkaProducer<>(props); producer.send(new ProducerRecord<>("your-topic", "your_payload_here"); producer.close();
推荐阅读
- java - Springboot中基于条件的返回列表?
- angular - concatLatestFrom 带有多个选择器 ngrx
- javascript - 如何确定元素中的单击位置是否有文本
- javascript - 如何找到匹配所有关键字的html元素?
- java - `private void readObject(ObjectInputStream stream)`如何在Java中的自定义序列化中返回一个对象?
- symfony - Symfony 登录在 TEST 和 PROD 环境中失败
- php - 使用 PHP 转发带附件的 MIME 消息
- ms-word - 从加载项在 Word 中打开 PDF
- i2c - Atmega 中的 TWI。为什么主机在发送 STOP 位之前发送 NACK 位
- python - 不写入文件