开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~(上)

简介: 开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~(上)

不知道你是否在工作中有遇到过类似情况:


  • dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发。
  • telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来。
  • 复杂对象参数传参调用接口复杂,编写java api调用接口时间成本较高。


image.png


上述这些坑我在工作中都有遇见过,发现大部分耗时都会卡在调用dubbo服务做自测的阶段,所以后来花费了写业余时间写了一款高效的dubbo测试工具开源给大家使用。


这款工具目前已在实际工作中应用半年多,基本功能已经成熟,后续依旧会进行版本维护。


相关的代码地址为:


https://gitee.com/IdeaHome_admin/dubbo-proxy-tools


ps: 如果大家喜欢,希望能给出一颗宝贵的star


关于如何部署本工具


下载了gitlab的代码之后,你会看到有两个文件包:iubbo-proxy和iubbo-proxy-web,它们分别正好对应了后端代码和前端代码。


image.png


前端代码的部署


前端采用非常简单的vue技术,只需要将文件部署到一台nginx上边即可运作。


前端的默认访问页面是test-dubbo-web.html。


但是有两个小点需要改动下js配置


constants.js


这份文件里面编写了对应的请求server地址,这块是对应了后端服务的url。


image.png


由于请求dubbo接口需要通过zk注册中心来拉去服务名列表,所以需要在iubbo.x.js里面的commonzk中做配置:



image.png


这里的host是一个别称,相当于一个key用于供前端展示,实际上传输给后端的是用ip这个值。


后端代码的部署


后端工程采用了springboot框架技术,核心的配置放在了application.properties里面:


server.port=7089
application.invoker.name=iubbo-invoker-proxy
spring.datasource.druid.password=
spring.datasource.druid.username=
spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/iubbox-proxy
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
mybatis-plus.configuration.map-underscore-to-camel-case=true
spring.redis.port=6379
spring.redis.host= 127.0.0.1


然后倒入建表的sql:


CREATE TABLE `t_dubbo_invoke_req_record` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT '用户id',
  `arg_json` varchar(2500) COLLATE utf8_bin DEFAULT NULL COMMENT 'dubbo请求参数',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `t_user` (
  `id` int(9) NOT NULL AUTO_INCREMENT,
  `username` varchar(60) COLLATE utf8_bin DEFAULT NULL,
  `password` varchar(30) COLLATE utf8_bin DEFAULT NULL,
  `createTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `updateTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


  • t_user 用于记录相关的用户账号,方便于保存用户账号信息。
  • t_dubbo_invoke_req_record 用于记录请求dubbo接口的用例信息。


最后就是启动入口类org.iubbo.proxy.DubboInvokerApplication


启动成功截图


image.png


关于本工具的使用教程


本工具区分了已登录账号和未登录账号两类角色,已登录账号的使用者可以对请求的用例进行保存,方便下一次提取信息,未登录账号虽然没有保存用例的功能,但是不影响其使用本工具进行测试。


首页截图:



image.png


1.指定zk地址

在测试dubbo接口之前,我们通常都会去拉取一遍zk上边的service地址,操作如下图:

先在文本框点击,输入和js配置有关的字母或数字会有模糊匹配的选项供各位选择:


image.png


选中了zk地址之后,再去点击拉取zk地址按钮(以前有同事刚接触这个工具的时候,这里被绕蒙了~~)


拉取zk地址的时候,后端会根据文章上边提到的js配置里面的ip值去拉取,拉取成功会有相关提示:


image.png

相关文章
|
6月前
|
负载均衡 Dubbo Java
Dubbo 3.x:探索阿里巴巴的开源RPC框架新技术
随着微服务架构的兴起,远程过程调用(RPC)框架成为了关键组件。Dubbo,作为阿里巴巴的开源RPC框架,已经演进到了3.x版本,带来了许多新特性和技术改进。本文将探讨Dubbo 3.x中的一些最新技术,包括服务注册与发现、负载均衡、服务治理等,并通过代码示例展示其使用方式。
368 9
|
6月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
335 2
|
6月前
|
C++
jrtplib开源库系列之一:jrtplib介绍、安装和测试(window 10环境介绍)
关于jrtplib库网上已经有很多介绍,而且目前jrtplib作者已经停止更新(Apr 18, 2020),最新版本为v3.11.2。本系列内容也以该版本进行介绍。 相信你已经对RTP/RTCP协议有一定的了解,并想更深入的了解RTP协议的具体实现,jrtplib就是使用使用C++实现的RTP/RTCP协议。具体标准为RFC3550,如果想仔细阅读原文,但是对英文又有点吃力,可以参考我的博客RTP/RTCP中英文对照,在博客的后面有百度链接,是对RFC3550的中文翻译,可能很多地方不太准确,有些内容是自己添加进去的,希望不会影响你的阅读。
125 0
|
6月前
|
消息中间件 Dubbo Java
Spring全家桶 、Dubbo、分布式、消息队列后端必备全套开源项目
基于 Spring Boot 2.X 版本的深度入门教程。 市面上的 Spring Boot 基础入门文章很多,但是深度入门文章却很少。对于很多开发者来说,入门即是其对某个技术栈的最终理解,一方面是开发者“比较懒”,另一方面是文章作者把 Spring Boot 入门写的太浅,又或者不够全面。
|
26天前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
43 2
|
11天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
21天前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
3月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
122 1
|
3月前
|
运维 Kubernetes 监控
|
5月前
|
NoSQL 关系型数据库 MySQL
软件测试之【基于开源商城系统fecmall功能测试项目实例】
软件测试之【基于开源商城系统fecmall功能测试项目实例】
323 0
软件测试之【基于开源商城系统fecmall功能测试项目实例】
下一篇
无影云桌面