dubbo 测试工具
本章我们主要来聊聊如何测试dubbo接口。我们知道dubbo是做了接口本地化调用的,如果不引入Jar的话,我们如何做测试呢,总不能每次服务端接口更新了,我们都要重新更新Jar包去测试吧?
dubbo-proxy-tool
目前市面上也有很多测试dubbo的方法,比如dubbo-postman、jmeter、dubbo自带的telnet命令等等。今天我们要介绍的是dubbo-proxy-tools,也是一款开源的dubbo测试工具。它有如下优点:
- 界面化,有一个易于操作的界面
- 无jar包依赖,服务端接口更新了,测试工具只要改一下接口参数,不用同步更新
- 测试用例可保存并转移,用例不是测一次就没了,可以保存下来,并且可以把自己的用例拷贝一份给其他人
- 需要引入mysql数据库
- 需要引入redis
总体上缺点可以简单改造,优点也比较明显,所以我们选择使用这款测试工具,其源码实现也非常简单,我们自己拉了一份进行维护和做定制化开发。
第一个测试用例
如何搭建和部署这里就不做介绍了,直接看总结里的参考资料。先上界面
![dubbo 测试工具](https://img.it610.com/image/info9/a694ed05f3e24d4f945c15b7c61b8d70.jpg)
文章图片
再来看操作:
1) 先拉取对应注册中心的服务数据
目前这个版本代码功能还不是很完善,需要自己手动在数据库表
t_register_config
里添加![dubbo 测试工具](https://img.it610.com/image/info9/5ad68cfffa954e589a95f611afcf69dd.png)
文章图片
这里的 host 就是我们需要输入的关键字,还不支持下拉框自动识别,需要先输入部分关键(所以说目前不是很完善)
![dubbo 测试工具](https://img.it610.com/image/info9/e5ea9b278431443eaecc5a24ccddc585.jpg)
文章图片
目前只支持 zookeeper,当然你可以自己扩展其他注册中心
![dubbo 测试工具](https://img.it610.com/image/info9/a2d59ad2261f48db920b70c769471ac0.jpg)
文章图片
然后点击拉取服务地址按钮,显示获取成功就说明注册中心的服务都加载过来了
![dubbo 测试工具](https://img.it610.com/image/info9/6ef1ee55c47c4a2ca2df850de023ff88.jpg)
文章图片
2) 测试服务接口
我这边启动了服务
com.example.dubboprovider.rpc.CityService
,输入服务名,然后在旁边输入服务的方法名![dubbo 测试工具](https://img.it610.com/image/info9/59f879b1940f4263abe6d1cec30ab5cd.jpg)
文章图片
接着选择请求参数,我这里接口是不需要参数的,所以不填,如果有则需要填上对应的类型以及你要测试的值
![dubbo 测试工具](https://img.it610.com/image/info9/6d52750d981a4f20a4e8863141ce935c.jpg)
文章图片
【dubbo 测试工具】点击发送dubbo请求即可
![dubbo 测试工具](https://img.it610.com/image/info9/23c0969c8aa2448d976d3336ca7f8d8a.jpg)
文章图片
下面会直接显示响应的结果
![dubbo 测试工具](https://img.it610.com/image/info9/a454012d07e64f1a9b84ff8b68c232cc.jpg)
文章图片
当然你也可以看到Dubbo本次调用的url的情况
![dubbo 测试工具](https://img.it610.com/image/info9/329ed40d29194b519f6f60ca19f93389.jpg)
文章图片
3) 复杂类型参数接口测试
上面的是最简单的接口测试,如果接口包含复杂的对象参数,如何测试呢?比如我的接口参数是这样的
![dubbo 测试工具](https://img.it610.com/image/info9/ae641e2d72f845a4881fe8218ddf604a.jpg)
文章图片
只要点击自定义参数,通过 json 格式填入各个参数名称以及对应的值
![dubbo 测试工具](https://img.it610.com/image/info9/d55a3f88a56a4633a8bf35bdc41f7c42.jpg)
文章图片
这里需要注意的是对象名称要填包全路径名,指的就是参数的类型。如果类中嵌套其他类,则需要加一个 Json,比如这里的 channelParam 就是一个其他的类型,里面要有 class 来指定对应的具体类。对于枚举类型,直接填对应的名称即可,比如这里的枚举类型是 PayChannelEnum,填了 CMB,这个 CMB 就是一种枚举类型名称
![dubbo 测试工具](https://img.it610.com/image/info9/194c5eb63c764d40a64db88fb5c34c3b.jpg)
文章图片
4) 保存和转移用例
完成用例编写之后,可能你下次还要复用或者转移给其他人复用,这里就涉及到保存和转移。
保存比较简单,写完之后直接点击保存按钮即可
![dubbo 测试工具](https://img.it610.com/image/info9/e39d1885d93740ee8692656d15debdd9.png)
文章图片
保存完之后要转移用例,先点击请求记录
![dubbo 测试工具](https://img.it610.com/image/info9/dfad415e10a4490192d9849fe08f21b5.png)
文章图片
然后点击转移用例给其他人
![dubbo 测试工具](https://img.it610.com/image/info9/377ec0e9234544ce8d38030c1486429c.jpg)
文章图片
再输入该账户名即可
![dubbo 测试工具](https://img.it610.com/image/info9/c277bbc2e5ab4451b7c25bc7cda76e1d.jpg)
文章图片
这样其他人就不用重复写用例了
5)其他功能
除了以上常用的功能外,还有其他功能,比如压力测试、直连Url、选择版本号等,在这里都能自己找到,就不一一介绍了,自己去摸索下
![dubbo 测试工具](https://img.it610.com/image/info9/e14c47e9ac6a4352a7b85dd1d524e81d.jpg)
文章图片
总结
目前该款测试工具提供了基本可用的地步,只是达到可用而已,后续还需要我们自己去多多完善,提高使用效率。
参考资料:https://gitee.com/IdeaHome_ad...
推荐阅读
- dubbo基本认识
- Dubbo引用服务
- 第七章|第七章 行业内的结构分析
- 3.|3. Dubbo服务提供端请求处理流程
- Java程序|软件测试八款优秀的API安全测试工具,会用三款工作效率能提升50%
- 从原理到操作,让你在 APISIX 中代理 Dubbo 服务更便捷
- 推荐八个高效测试工具
- 在线正则表达式可视化测试工具
- 2021年软件测试工具总结——嵌入式软件测试工具 | IDCF
- Dubbo使用Hessian2序列化时针对Byte类型出现java.lang.ClassCastException