背景:
针对中台系统的dubbo接口测试,小白不会代码的同学,可以使用jmeter也可以轻松完成接口测试。包括接口的功能测试,幂等校验等不方便通过上游系统调用的,都可以通过以下jmeter直接调用达到测试的目的,是不是很心动~
实现步骤:
1、下载第三方插件
jmeter本身并不支持dubbo接口的测试,需要下载第三方插件,然后将jar包放入${JMETER_HOME}\lib\ext路径下,重启即可。可以使用以下jar包,也可以网上下载。
jar包:📎jmeter-plugins-dubbo-2.7.3-jar-with-dependencies.jar
2、创建dubbo sample
放好步骤1中的插件,重新打开jmeter,就可以新建dubbo接口取样器了
3、准备接口信息
3.1 问开发要接口文档
举例支付中心-支付冻结接口:
接口摘要:com.qccr.cashierprod.facade.service.trade.TradePayFacade#pay(TradePayParamRO tradePayParamRO);
3.2、查看测试环境dubbo接口注册信息
具体操作手册看运维文档:https://xcz.yuque.com/devops-trul2/qtgrtm/twomy2
a. 搜索到测试的接口
b. 查看服务器接口信息
3.3 telnet调试dubbo接口
telnet IP PORT #
例如:telnet 172.26.59.6 20926
Trying 172.26.59.6...
Connected to 172.26.59.6.
Escape character is '^]'. #按回车键,进入dubbo接口
dubbo>
3.4 ls查看该dubbo服务下的所有接口
3.5 ls -l 接口名称,获取到jmeter里面的调用参数:paramType,取括弧里面的对象名称
命令说明:
ls
: 显示服务列表ls -l
: 显示服务详细信息列表
ls XxxService
: 显示服务的方法列表ls -l XxxService
: 显示服务的方法详细信息列表
4、jmeter dubbo接口参数
参数说明:
a.protocol:none
address:服务器ip:端口
version:
interface:接口名
paramType:对象名
paramValue:接口入参,可以到trace日志查询参数格式
例如
"params":[{"accountType":"CREDIT","amount":7000,"appName":"订单中心","businessChannel":"FRANCHISEE_BUSINESS","businessNo":"23368233235703","buyUserId":"307290528","channelToken":"NCARZONEACCOUNT_01_B2B_NCA101_THIRD","extendsParam":"23296550964403","payerIp":"172.26.168.56","returnUrl":"http://127.0.0.1:8080/","saleType":0,"subject":"加盟商订单:23296550964403","summary":"订单[23296550964403]于[2020-05-25/22:52:12]发起冻结,金额为:70","timeoutExpress":1732}]
5、执行脚本,查看执行结果
6、常见问题说明
6.1 接口版本号不正确,如下图提示,1.0改为1.0.0就可以了
6.2 服务连不上
原因:
查看dubboadmin状态,注册失败,显示的ip不对。可以去运维平台看测试环境的服务ip或者可以找窦阳(北斗)把把dubboadmin重启下。