Dubbo 接口测试没你想的那么高大上

本贴最后更新于 1568 天前,其中的信息可能已经天翻地覆

主题:Dubbo接口测试没你想的那么高大上

一、Dubbo是什么?

  1. Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架
  2. 一款分布式服务框架、高性能和透明化的RPC远程服务调用方案、SOA服务治理方案
  3. 下图是阿里巴巴技术解决方案演变图,从单应用->应用分层->分布式->面向服务

image.png

二、Dubbo接口是什么?

为了提高效率,研发团队为Dubbo框架实现了一套数据交互协议,才用这种协议传输数据的接口就是Dubbo接口。

三、Dubbo和http、WebService、WebSocket接口有什么区别?

首先接口就是一段后代代码一个方法一段功能的实现。比如最常见的登录接口:

/**
* 注册
* @param member
* @return
*/
@RequestMapping("/login")
public @ResponseBody Result login(Member member) {
	...
}

这个login方法可能是http、Dubbo、WebService接口中任意一种,如果后台使用Dubbo框架那么就是一个Dubbo接口,如果后台Apach CXF那么就是一个WebService接口。

四、Dubbo基础架构

image.png

Provider: 暴露服务的提供者。(开发人员写的代码)
Consumer: 调用远程服务的消费者。(*代码、telnet命令、jmeter插件*)
Registry: 服务注册与发现的注册中心。(平台、zookeeper)
Monitor: 统计服务的调用次调和调用时间的监控中心。(dubbo-monitor)
Container: 服务运行容器(dubbo内置容器、Jetty)

五、zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Dubbo推荐是用zookeeper作为注册中心。

image.png

六、服务提供者

由开发人员提供,运维人员部署。

七、服务消费者

服务消费者是我们测试Dubbo接口主要手段,写一段消费者代码测试这是最直接的方式,但是对于没有代码基础或者不熟悉的Dubbo框架的同学来说,简直就是灾难。那有没有其他方式来测试呢?有,目前来说有两种方式可以让没有任何代码基础的同学毫无压力的测试Dubbo接口,一种使用jmeter插件,另外一种就是今天我们要给大家介绍的telnet命令。

  1. 检查telnet命令是否可用

如果提示telnet不是内部或者外部命令,说明操作系统并没有开启telnet服务。如图:

image.png

那我们需要开启telnet服务,具体操作步骤:控制面板->程序->程序和功能->打开或关闭Windows 功能->勾上 telnet相关服务。如图:

image.png

  1. telnet命令
telnet IP 端口 连接

image.png

进入界面之后再回车,就能看到dubbo> 说明你成功连上了。

image.png

ls -l 查看接口信息

image.png

ls -l 接口类 查看接口中方法信息

image.png

invoke 接口类.方法(参数) -- 前面的命令都是显示Dubbo接口信息,invoke是用来执行接口,
也是测试Dubbo接口的关键所在。当然在测试Dubbo接口时必须结合接口文档,你必须知道传入数据的格式,
和返回数据的格式,才能做断言和设计用例。比如上图中getMember()方法有返回值也需要参数,
而list()方法没有参数,测试会更加简单,我们可以来看看调用list()方法会返回什么内容。

image.png

从上图可以看出来,调用list()方法之后返回了用户信息。我们只需要检查返回的数据和数据库中是否一致即可。
这就是使用telnet命令测试Dubbo接口。非常简单,只需要记住 telnet、ls -l 、invoke 三个命令。
下次将会给大家带来如何是jmeter插件测试Dubbo接口,敬请期待~
1 操作
luojie 在 2020-08-06 17:40:13 更新了该帖
回帖
请输入回帖内容 ...