Dubbo接口不知道怎么测?教你三行代码实现dubbo接口测试
每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
简介
在服务端的接口测试中,rpc类型接口非常的普遍,比如dubbo、grpc等接口,针对此类接口,目前没有特别好的通用工具来执行测试,一般都是公司内部会开发一些接口工具实现对内如rpc接口的测试。像是dubbo接口,Jmeter有一个dubbo插件,但是易用性比较差,而且也存在bug,并不能作为测试的首选,这种情况下,不如通过自己写代码的方式来进行测试,即锻炼了自己的代码能力,还能更加深入了解dubbo接口的原理。这篇文章就带领大家一步步实现dubbo接口的脚本编写。
先来简单了解下dubbo的原理。
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架。
这是dubbo框架架构图

节点角色说明:
Provider: 接口服务提供方。
Consumer: 接口服务调用方。
Registry: 服务注册与发现的注册中心,比如Zookeeper
Monitor: 统计接口的调用次调和调用时间的监控中心。
Container: 服务运行容器,比如Tomcat之类的。
接下来来说下如何编写dubbo测试脚本。免费领取码同学软件测试课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章+ 私信「码同学666」获取资料哦
获取项目配置信息
首先,你得有一个可以练习的dubbo项目(可以拿公司测试环境的dubbo项目练手)。
其次,找开发要到本次需要测试dubbo接口jar包(通常名字带有”client”、”api”等字样)。使用反编译工具打开jar包,可以看到测试的接口方法,如:

在OrderService接口中,包含了5个方法。明确本次需要测试哪些方法,比如getOrderById。
最后,找研发问到dubbo项目使用的注册中心ip和端口号,比如10.0.0.28:2181。
创建Java工程
在idea中(或者eclipse)创建一个Java工程,并将相关的依赖jar包导入的工程中。包括:
dubbo的依赖包(在服务端dubbo项目内可以找到,可以找研发要)

dubbo接口包(在服务端dubbo项目内可以找到,可以找研发要)

将dubbo的配置文件applicationContext.xml放到项目的src目录下,配置如下:

解释:
address处配置的是dubbo注册中心的ip和端口号
interface处配置的是本次要测试的dubbo接口“cn.testfan.dubbo.service.OrderService”
最终,完整的工程结构如图:

编写脚本
在工程的src目录下,创建package和测试类OrderTest,代码很简单,只需要三四行就可以调通dubbo接口,如下:

运行脚本,可以看到打印出的结果:

基本的demo脚本测试通过后,就可以封装为Testng、Junit的测试用例,或者转换为Jmeter Java请求,来进行进一步的接口测试了。
免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。