前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dubbo接口的测试方法汇总​

dubbo接口的测试方法汇总​

作者头像
我是胖虎啊
发布2022-06-27 18:08:59
1.1K0
发布2022-06-27 18:08:59
举报
文章被收录于专栏:测试开发卷货测试开发卷货

前情提要

  1. 我的上一篇文章"从0到1搭建dubbo服务"已经详细介绍了如何在本地搭建测试的dubbo服务
  2. 今天刚更新了dubbo的相关代码, 完善了提供者的测试数据和接口 + 编写消费者的controller提供http接口调用 + swagger集成.

swagger接口文档地址为: http://ip:8081/swagger-ui.html (其中ip为消费者服务的ip)

大家直接使用software目录里面的jar包部署即可!

常用测试方法汇总

个人通过搜集资料, 总结出dubbo相关接口的测试方法有4种,下面介绍下同时给出自己的推荐指数(满星是5星)

1. 使用telnet命令来测试 (推荐指数:1星)

优点: 最原始的测试方法,可以简单调用dubbo接口

缺点是:

  • 在windows的cmd上使用telnet命令运行,经常会遇到乱码问题
  • 不容易接口复用, 每用一次就得手敲一次
  • 无法进行自动化集成

2. jmeter集成dubbo相关的jar包测试 (推荐指数:2星)

优点: 使用工具来测, 操作相对简单一些

缺点:

  • 需要找相关的jar包, 并且保证自己的jmeter版本适配这个jar包
  • 可能会遇到jmeter卡住无响应的问题
  • 不太好和代码相关的进行结合,开展自动化测试

3.自己写java代码调用远端的提供者服务 (推荐指数:4星)

个人见解:如果有java基础和Springboot基础,最推荐使用这种方法.

优点:

  • 可以更加方便的调用代码中的服务, 包括查看传入参数, 打印相关日志等
  • 可以锻炼自己的java代码能力

缺点是:

  • 必须具备java基础和Springboot基础, 要求稍微高一些
  • 可能会遇到一些代码的bug, 需要自己调试解决

4. 使用别人封装的库或者开源工具进行测试 (推荐指数:4星)

优点:

  • 有大神提供的工具包可以让咱们使用起来更简单
  • 感兴趣的话,可以学习一下这些开源工具的相关代码,提升自己的相关能力

缺点:

  • 需要详细阅读别人的文档, 部署相关环境
  • 需要一定的代码能力

具体介绍测试方法

首先先熟悉一下自定义接口, 服务提供者的接口定义文件:

gmall_interface\src\main\java\com\atguigu\gmall\service\UserService.java

我们就是测试UserService服务里面定义的这4个方法, 为了多样性, 我设计了不同类型的传参和返回值的接口.

1. 使用telnet命令来测试

建议在Linux上来操作,因为使用windows是哪个的telnet会出现乱码,改编码格式后仍未解决问题,Linux上无此问题!

远程连接远端服务(这里用的是zookeeper的ip和port, port默认为20880)

代码语言:javascript
复制
telnet ip port

输入回车, 即可进入下面的界面

调用方法:可使用cd, ls, invoke这些命令来做基础操作

对方法的调用示例

  • getUserCount
  • getOneUserAddressList
  • getSpecificAddressList
  • getUserAddressList

2. jmeter集成dubbo相关的jar包测试

感兴趣的可以自己操作下, 帖子链接如下:

https://juejin.cn/post/6844903952962551815

3. 自己写java代码调用远端的提供者服务

文件位置

这个OrderController集成了Swagger, 部署了消费者服务后, 可以通过 http://ip:8081/swagger-ui.html来查看接口文档

然后就可以通过调用http接口来进行测试了

4. 使用别人封装的库或者开源工具进行测试

目前发现3个比较好的开源项目

「将dubbo接口封装为http的fastapi项目」

项目地址: https://github.com/JokerChat/dubbo_fastapi

优点:

  • 纯http接口操作, 根据文档接口示例, 传入对应的参数即可
  • 使用python3的fastapi框架完成的, 有python基础的话入门容易些, 有需要可以学习些基础的fastapi操作, 做些二次开发

接口示例1

POST http://127.0.0.1:5000/api/dubbo/search

body

代码语言:javascript
复制
{
    "serviceName": "com.atguigu.gmall.service.UserService"
}

响应

接口示例2

POST http://127.0.0.1:5000/api/dubbo/invoke

body

代码语言:javascript
复制
{
    "serviceName": "com.atguigu.gmall.service.UserService",
    "methodName": "getSpecificAddressList",
    "data":
        {
            "data": {"address":"广东省深圳市"}
        }
}

响应

代码语言:javascript
复制
[
    {
        "consignee": "Lucy",
        "id": 300,
        "isDefault": "Y",
        "phoneNum": "15991923491",
        "userAddress": "广东省深圳市XXX大厦F座",
        "userId": "130"
    },
    {
        "consignee": "Tony",
        "id": 305,
        "isDefault": "Y",
        "phoneNum": "13660415233",
        "userAddress": "广东省深圳市XXX景区",
        "userId": "160"
    }
]

「可视化的dubbo测试工具(flask + layui框架)」

项目地址: https://gitee.com/prestest/dubboTestTool

优点:

  • 纯界面化操作, 使用较简单.
  • 界面也很清爽简洁,符合使用习惯,点个赞!
  • python的flask框架完成的, 较方便做一些二次开发

使用示例1

使用示例2

「python的dubborequests库」

详细介绍: https://testerhome.com/topics/32756

以上就是关于「dubbo服务的测试方法」的分享

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发卷货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前情提要
  • 常用测试方法汇总
    • 1. 使用telnet命令来测试 (推荐指数:1星)
      • 2. jmeter集成dubbo相关的jar包测试 (推荐指数:2星)
        • 3.自己写java代码调用远端的提供者服务 (推荐指数:4星)
          • 4. 使用别人封装的库或者开源工具进行测试 (推荐指数:4星)
          • 具体介绍测试方法
            • 1. 使用telnet命令来测试
              • 2. jmeter集成dubbo相关的jar包测试
                • 3. 自己写java代码调用远端的提供者服务
                  • 4. 使用别人封装的库或者开源工具进行测试
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档