前言
由于工作中,产品使用Dubbo接口极多(特别是电商),因为dubbo访问与传统的http请求方式不同,对于测试人员来说没有直观的url、参数、接口api等,往往遇到这类接口测试让人无从下手。
通过这篇文章可以让测试人员简单快速上手,直接调用该接口进行测试访问,简单粗暴,妈妈再也不用担心我工作挠头啦…
Dubbo简介
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。
从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容如下图所示:
Dubbo接口测试方法
1)使用postman测试dubbo服务层的方法
此方法未进行实战测试过,主要通过其他博主文章了解到,跳转:使用postman测试dubbo服务层的方法
2)通过自己编写代码实现dubbo提供者的单元测试,跳转:Dubbo服务提供者单元测试
3)通过命令行,使用telnet连接dubbo服务,连接到dubbo提供者所在的服务器地址进行操作及访问,本文讲解这种方式。
Telnet命令参考手册
Dubbo中文手册——>若想同样通过API配置的方式启动、访问服务提供者可参考手册。
使用telnet连接dubbo服务
第一步:获取dubbo提供者部署服务器地址及端口
可以询问开发或去zookeeper监控平台查看。如图:
第二步:通过telnet连接dubbo服务
在本地windows中的doc命令行可以,也可以通过linux服务器,如图:
telnet ip port 命令回车键进入dubbo客户端,如果没有telnet命令请自行查看window、linux的打开及安装方式。连接成功如图:
第三步:telnet相关命令查看dubbo服务
ls 命令查看此提供者中提供哪些服务。
ls [服务名称] 查看服务中的方法(此方法可以理解过一个dubbo接口)
ls -l [服务名称] 查看服务中的详细方法(此方法可以理解过一个dubbo接口)
第四步:通过invok命令进行访问dubbo接口
invoke [服务路径].[方法名](参数) 参数有类型、数量之分,后续会讲到。
注意点:
版本问题:
1)Dubbo 2.0.5以上版本服务提供端口支持telnet命令。
2)invoke使用dubbo版本需要升级到2.8.4,否则telnet调用会报错,查看了2.6.3版本的源码,确实不支持接口参数是对象的情况,不知道是bug还是本来就不支持。详情请查看dubbo源码InvokeTelnetHandler类的findMethod方法,2.8.4版本和之前版本的差异就能找到原因。
方法中的参数类别: