• dubbo 接口的测试方法汇总


    常用测试方法汇总

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

    1. 使用 telnet 命令来测试

    推荐指数 ⭐️

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

    缺点:

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

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

    推荐指数 ⭐️ ⭐️

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

    缺点:

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

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

    推荐指数 ⭐️ ⭐️ ⭐️ ⭐️

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

    优点:

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

    缺点:

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

    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)

     
    
    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

    1. {
    2. "serviceName": "com.atguigu.gmall.service.UserService"
    3. }

    响应

    接口示例 2

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

    body

    1. {
    2. "serviceName": "com.atguigu.gmall.service.UserService",
    3. "methodName": "getSpecificAddressList",
    4. "data":
    5. {
    6. "data": {"address":"广东省深圳市"}
    7. }
    8. }

    响应

    1. [
    2. {
    3. "consignee": "Lucy",
    4. "id": 300,
    5. "isDefault": "Y",
    6. "phoneNum": "15991923491",
    7. "userAddress": "广东省深圳市XXX大厦F座",
    8. "userId": "130"
    9. },
    10. {
    11. "consignee": "Tony",
    12. "id": 305,
    13. "isDefault": "Y",
    14. "phoneNum": "13660415233",
    15. "userAddress": "广东省深圳市XXX景区",
    16. "userId": "160"
    17. }
    18. ]

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

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

    优点:

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

    使用示例 1

    使用示例 2

  • 相关阅读:
    Yolov8部署——vs2019遇到的问题
    vue2 quill 视频上传 ,基于ruoyi vue,oss
    springboot中如何进行测试用例数据的随机设定
    快速排序、归并排序、堆排序的C++实现_独家原创
    软件系统开发标准流程文档(Word原件)
    Springboot全局配置文件
    新品速递|海泰边缘安全网关护航工控数据采集
    前端JS 使用input完成文件上传操作,并对文件进行类型转换
    A股一年见两次2800 那么期货是怎么多空操作的?
    自动直播软件开发方案:打造智能化、高效化的直播体验
  • 原文地址:https://blog.csdn.net/weixin_68548441/article/details/125540087