如何借助国产性能测试工具对 kafka 进行压测

上个月,我们推出了最新国产自研产品——性能测试工具XRunner体验版,并在技术社区推出并进行了内测,效果反响特别好,成功解决了应用系统性能瓶颈问题。

近日,我司接到一个性能测试任务,需要对正式环境下集群服务器上Kafka处理消息能力进行压力测试,测试内容包括:对Kafka写入消息和消费消息进行压力测试,并根据不同量级的消息处理结果,评估Kafka的处理性能是否满足项目需求测试。鉴于当下公司环境无法使用美帝产品,Jmeter的并发数小,压测数据精确度较低,因此,XRunner这款开源的国产性能测试工具是最优选择。由于前期大部分的服务业务数据都存在kafka上,在推出XRunner体验版前也做了不少测试和记录,本文将跟大家分享下如何在国产化性能测试工具中对kafka进行压测,希望这篇文章能对大家在压测kafka过程中有一些启发和帮助。

本次kafka压测,直接可在XRunner体验版上进行。

  • 下载入口.jpg

jar包:XRunner安装目录下内置了kafka jar包存放在\XRunner\agent\lib 目录下。

jar包目录.jpg

1.进入脚本编辑页面

1)打开XRunner客户端,使用admin/admin登录

1.1.jpg

2)单击左上角XRunner右侧的快捷菜单按钮

1.2.jpg

3)下拉菜单选择“脚本用例”选项,单击进入用例管理模块

1.3.jpg

4)【协议/接口脚本】子页面,右侧单击“新建http脚本”按钮

1.4.jpg

5)界面进入:脚本配置界面

1.5.jpg

2.脚本编辑操作

1)单击“脚本名称”输入框,输入脚本名称:producer

2.1.jpg

2)单击“描述名称”输入框,输入描述名称:produce

2.2.jpg

3)单击“URL”输入框,输入URL地址:http://192.168.125.129:9092/topicA/101 格式介绍: - 192.168.125.129:9092为kafka服务IP与端口 - topic是消息主题 - 101是消息发送重复次数

2.3.jpg

4)单击“方法”下拉框,选择:post

2.4.jpg

5)单击“HTTP内容”文本输入框,文本框输入:testaaaaa

2.5.jpg

6)单击“参数列表”,进行请求参数的参数化设置

2.6.jpg

7)这里我们配置一个参数:“forKafka”供内部使用;“类型”选择:固定参数,“参数名”输入:forKafka

2.7.1.jpg

2.7.2.jpg

8)点击关闭“参数列表”配置窗口

2.8.jpg

9)单击“保存”按钮,保存前面我们对整个kafka脚本做的脚本名称、url、http内容、参数等所有数据。

2.9.jpg

3.创建测试计划,执行压测

1)单击左上角XRunner右侧的快捷菜单按钮,选择“测试/执行”下拉选项

3.1.jpg

2)单击界面右上角“+新建测试计划”按钮,新建压测计划

3.2.jpg

3)弹窗选择:性能测试(WEB/HTTP/接口协议),单击“新建计划”按钮创建压测计划

3.3.jpg

4)单击“测试名称”文本输入框输入:KafkaRun,设置测试计划名称为:KafkaRun

3.4.jpg

5)单击脚本文件“选择”按钮,选择我们上面编写好的脚本文件:producer

3.5.1.jpg

3.5.2.jpg

6)进行压测的模型配置,这里我简单配置了下参数,大家结合实际业务压测策略调整;

  • 配置并发10用户
  • 循环10次
  • 运行10分钟

3.6.jpg

7)添加本地执行器,单击“选择添加”按钮

3.7.jpg

8)勾选本地执行器,单击“确定添加”按钮 因为本身我的压测机就是本机,所有选择的就是本地执行器

3.8.jpg

9)单击“运行”按钮,自动开始压测,页面自动跳转到压测“指标曲线”页面 如果不需要马上执行,可以先保存

3.9.jpg

10)运行结束后,在“指标数值”子菜单页面可以查看整体情况

3.10.jpg

4.消费脚本创建

1)其他配置项与前面脚本配置相同,只需要将“方法”更改为get即可,不需要填写http参数

4.1.jpg

5.集群测试配置

1)在producer脚本中增加:头域

5.1.jpg

2)增加Kafka-Server头域,输入:192.128.125.129:9092,192.128.125.130:9092 上面输入的值是集群中多个kafka server的ip和端口,大家根据自己实际环境输入

5.2.jpg

3)更改“Content-Type”的值为:text/plain

5.3.1.jpg

改完之后为:

5.3.2.jpg

4)剩下操作就是创建压测执行计划,这样就可以向kafka集群发起整体压测了。

如想了解更多XRunner的功能,随时可联系我们:13533759898。