JMeter + dubbo 接口测试

JMeter 介绍

JMeter 是 Apache 组织基于 Java 开发的一款开源的性能测试工具。它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域,并可以在 Windows、Mac、Linux 环境下安装使用。JMeter 还提供了图形界面,这使得编写测试用例变得非常简单,具有易学和易操作的特点。

前置准备:

  1. 下载安装配置jmeter
  2. 安装dubbo插件 jmeter-plugins-for-apache-dubbo
  • jmeter本身并不支持私有的 dubbo 协议,需要下载第三方插件
  • jmeter-plugins-for-apache-dubbo:是一款由 Dubbo 社区 Commiter – 凝雨同学开发的 JMeter 插件
  • 安装方式
  1. 克隆项目
git clone https://github.com/thubbo/jmeter-plugins-for-apache-dubbo.git
  1. 打包项目,构建 JMeter 插件,得到:jmeter-plugins-dubbo-2.7.3-jar-with-dependencies.jar
mvn clean install
  1. 将jar包放入${JMETER_HOME}\lib\ext路径下,重启jmeter
    在这里插入图片描述

操作步骤:

  1. 创建线程组
    在“测试计划”上右键 【添加】–>【线程(用户)】–>【线程组】
    在这里插入图片描述
  2. 增加dubbo取样器
    在刚刚创建的线程组上右键 【添加】–>【取样器】–>【Dubbo Sample】
    在这里插入图片描述
    Dubbo Sample界面如下:
    在这里插入图片描述
    按照被测服务进行配置,参考https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97

各参数说明如下:

注册协议Protocolnone:为直连方式
zookeeper:使用zk注册中心
multicast:广播方式
redis:使用redis注册中心
simple:使用simple注册中心
Address注册地址,dubbo服务的IP+Port
①、当使用zk,address填入zk地址,集群地址使用","分隔;
②、使用dubbo直连,address填写直连地址和服务端口;
Protocol使用的dubbo协议,包括dubbo、rmi、hessian、webservice、memcached、redis,根据自己的协议类型选择对应的选项即可
Timeout请求超时时间,单位ms,根据dubbo具体配置填写
Version服务版本,dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明
Retries异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率),不包括第一次调用,不需要重试请设为0
Cluster集群类型,可选:failover/failfast/failsafe/failback/forking
Group服务分组,当一个接口有多个实现,可以用分组区分,必须和服务提供方一致
Connections连接数,同上,根据配置填写
Async服务处理类型,包括sync(同步)、async(异步),根据配置填写
Loadbalance负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希)
Interface接口名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名+包名)
Method当前接口下的方法名,按照开发提供的API文档填写即可
Args接口报文,根据API文档填写,如上图所示,添加输入行,输入对应的参数类型和值即可(参数类型和值如何定义填写,请参考上面的链接)
paramType参数支持任何类型,包装类直接使用java.lang下的包装类,小类型使用:int、float、shot、double、long、byte、boolean、char,自定义类使用类完全名称
paramValue基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据
  1. 参考如上参数说明,按照被测服务信息进行配置。例:配置zk注册中心地址,填写被测服务接口名称及方法名,配置参数类型并填写参数取值。正确配置好后,可以正常调用并添加监听器查看返回。

补充:

  • 空参
  • 简单参数对照表
  • 复杂参数对照表
  • 若参数、服务等配置正确但仍返回不如预期,请检查对应环境的注册中心、被测服务是否正常,或者服务版本是否支持反向兼容。
  • 由于 JMeter Plugin 的限制,目前 Dubbo 的压测请求是通过泛化调用进行发送的,会有一定程度的性能下降,所以在实际评估 Dubbo 接口性能时,接口实际性能会比压测结果更加乐观。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值