基于网络开源代码开发的kafka采样器插件,可用于kafka写消息测试,特别是配合先发送java请求,再参数传递往kafka写消息
jmeter是一款使用广泛的测试软件, 为了支持复杂的业务场景(先发送java请求,再写kafka),避免多种测试工具来回切换,故开发了此KAFKA插件。
以下展示JMeter Kafka Sampler使用示例:
1.使用前准备 `安装JDK1.8,配置环境变量 `安装Jmeter 3.3(或更高),配置环境变量
2 . 将 Kafka Sampler (下载)取样器jar包ApacheJMeter_KafkaForJmeter.jar拷贝到 .."JMETER_HOME"\lib\ext目录中 ,以及关联jar包一并拷贝到"JMETER_HOME"\lib\ext目录中,具体用到
的jar包包括:fastjson-1.2.33.jar,spring-core-4.3.7.RELEASE.jar,kafka-clients-0.8.2.1.jar,snappy-java-1.1.1.6.jar,scala-library-2.10.4.jar,*-kafka_2.10_1.6_1.0-0.8.2.1.jar,*-kafka-api-core-1.12.jar,*-kafka-api-check-valid-1.12.jar,fvp-waybill-common-0.0.1-SNAPSHOT.jar,fvp-waybill-dto-0.0.2-SNAPSHOT.jar,fvp-waybill-puller.jar,fvp-waybill-dto-0.0.1-SNAPSHOT.jar,fvp-dto-0.0.2.jar,jackson-core-2.4.5.jar,jackson-databind-2.4.5.jar,jackson-annotations-2.4.5.jar,metrics-core-2.2.0.jar(以上jar包为IDSS业务所需要的所有jar包)
3.打开JMeter,创建一个测试计划,添加线程组
4.选中【线程组】,添加Sampler下的Kafka Sampler
5.新增测试用例,选中Kafka Sampler,右键添加查看结果树监听器,方便一会儿执行查看结果,如下图
monitorUrl:kafka地址;clusterName:集群名称;topicName:主题名称;checkCode:校验码;data:消息内容
6.查看测试结果,点击执行按钮,运行用例
package com.idss.kafka.javaForJmeter;
import com.*.fvp.dto.BarRecordBaseDto;
import com.*.fvp.waybill.common.kafka.model.OmsWaybillModel;
import com.*.fvp.waybill.common.modelContainer.NewestFullWaybillMode;
import com.*.fvp.waybill.common.subscribe.model.BarSubcribe;
import com.*.fvp.waybill.common.util.ProtostuffRuntimeUtil;
import com.*.fvp.waybill.puller.entry.CmspToPldDto;
import com.*.kafka.api.produce.IKafkaProducer;
import com.*.kafka.api.produce.ProduceConfig;
import com.*.kafka.api.produce.ProducerPool;
import java.util.ArrayList;
import java.util.List;
public class KafkaInit{
// ç”Ÿäº§è€…è¿žæŽ¥æ± å¤§å°ï¼ˆé»˜è®¤ï¼‰
private static int poolSize = 1;
// 主题å称
private String topic ;
// KAFKA连接地å€ï¼ˆé»˜è®¤ï¼‰
// private static String url = "http://mommon_other.intsit.sfdc.com.cn:1080/mom-mon/monitor/requestService.pub";
//private static String url = "http://ip:8292/mom-mon/monitor/requestService.pub";
private static String url ="http://ip:port/mom-mon/monitor/requestService.pub";
//private static String url ="http://ip:port/mom-mon/system.pvt";
// 主题所在的集群å称(默认)
private static String clusterName;
//效验ç (默认)
private String checkCode ;
// 主题å称+分隔符 (固定ä¸å˜ï¼‰ï¼‹ä¸»é¢˜çš„æ ¡éªŒç (默认)
private String topicTokens ;//= topic + ":" + checkCode;
public static void writeTokafka(KafkaInit pushToKafkaTest , Object record){
// 简易模å¼
ProduceConfig produceConfig = new ProduceConfig(poolSize, url, clusterName, pushToKafkaTest.getTopicTokens());
IKafkaProducer kafkaProducer = new ProducerPool(produceConfig);
List<String> strs