Dubbo 接口测试技术——测试开发进阶必备技术
署名2021-01-27

Dubbo 是什么?


Dubbo 接口测试技术,是测试开发进阶必备,那么Dubbo 是什么?Dubbo 是阿里巴巴开源的一套 RPC 方案,因为理念很契合微服务,这几年很火,用户里面不凡京东,当当,去哪儿等大公司。官网也提供了一个很简单实用的 Demo 来演示 Dubbo 协议的使用,用起来的确很简单强大。


Dubbo demo


下面介绍几种常用的 Dubbo 接口测试技术。

基于 telnet 的简单调试接口

任何一个 Dubbo 服务都支持一个简单的 telent 交互。比如

QQ截图20210127135807.png

这种方式只能用来简单验证接口的可用

传统的基于 XML 配置的 Dubbo 的测试技术


首先创建一个 XML 文件放到 resources 下

QQ截图20210127135826.png

通过使用一份 XML 配置文件进行测试

QQ截图20210127135836.png

基于 API 的 Dubbo 测试技术


其实除了 XML 配置之外,官方也提供了一份直接通过 API 进行配置的方式,这个方式无疑是可编程比较灵活的。

QQ截图20210127135850.png

泛化调用


官方是这样说的:泛化接口调用方式主要用于客户端没有 API 接口及模型类元的情况,参数及返回值中的所有 POJO 均用 Map 表示,通常用于框架集成,比如:实现一个通用的服务测试框架,可通过 GenericService 调用所有服务实现。

这种情况适合自己打造接口测试框架使用。以上 2 个方式都需要依赖研发提供的 Dubbo 接口的 jar 包,这无疑会增加项目的负担。

使用泛化可以不依赖任何研发提供的 jar 包,不过缺点也明显,仍然需要 jar 包或者其他的文档去分析 Dubbo 接口的调用参数信息。

例子

QQ截图20210127135903.png

虽然看起来还是依赖 jar 包,不过这个依赖就挺小了。如果你技术稍微 “猥琐” 点,就应该可以想到,只需要借助 asm 之类的字节码分析框架即可自动生成接口测试用例模板了。

Dubbo 测试技术关注点

  • Dubbo 支持很多的协议,如果用的是 HTTP 或者 Hessian 协议,他们本身是文本的,此测试技术可以直接使用 RESTAssured 框架进行接口测试;
  • Dubbo 的 Registry 保存了 Dubbo 各种服务的注册信息,测试的时候可以直接用 registry,而不是直接连接到提供服务的 provider 上;