Dubbo服务测试方法

Dubbo服务发布之后,除了编写Dubbo Consumer服务调用去测试,我们也可以利用telnet命令进行调试、管理。Dubbo 2.0.5以上版本服务提供端口支持telnet命令。本篇文章介绍一下如何使用telnet命令对Dubbo服务进行测试。

1. 确定Dubbo服务端口

Dubbo服务端口是定义在dubbo-provider文件中的,如下:[这里是图片001]上述文件中通过dubbo:protocol可以确定dubbo服务端口是10001

2. 使用telnet连接dubbo服务

通过telnet ip port方式可以测试dubbo服务是否连通,命令如下:

telnet 127.0.0.1 10001

回车后键入回车进入dubbo命令模式,如下:

dubbo>

3. 查看服务列表

ls命令可以查看服务列表

dubbo>ls
com.zhuoli.service.springboot.dubbo.contract.service.DubboTestService
dubbo>

查看服务中的接口

dubbo>ls com.zhuoli.service.springboot.dubbo.contract.service.DubboTestService
sayHello

也可以通过如下方式查看接口

dubbo>cd com.zhuoli.service.springboot.dubbo.contract.service.DubboTestService
dubbo>ls
sayHello

4. invoke调用服务接口

使用invoke调用接口,以JSON格式传入参数

dubbo>cd com.zhuoli.service.springboot.dubbo.contract.service.DubboTestService
dubbo>ls
sayHello
dubbo>invoke sayHello({"content": "zhuoli jjj"})
Use default service com.zhuoli.service.springboot.dubbo.contract.service.DubboTestService.
{"result":"Hello: zhuoli jjj"}
elapsed: 1 ms.
dubbo>

注意invoke使用dubbo版本需要升级到2.8.4,否则telnet调用会报错,查看了2.6.3版本的源码,确实不支持接口参数是对象的情况,不知道是bug还是本来就不支持。详情请查看dubbo源码InvokeTelnetHandler类的findMethod方法,2.8.4版本和之前版本的差异就能找到原因。

Doe 发布 [V1.0.0] 前段时间排查某问题的时候,想要快速知道某些dubbo接口(三无)的响应结果,但不想启动项目(因为这些项目不是你负责的,不会部署而且超级笨重),也不想新建一个dubbo客户端项目(占地方),也不想开telnet客户端连接口(麻烦而且有限制)。所以扣了dubbo的netty模块源码,封装了个收发客户端集成一个工具,可以快速调试dubbo接口。源码地址:https://github.com/VIPJoey/doe 极简模式 普通模式 目录结构 mmc-dubbo-api 接口项目,主要用于测试。 mmc-dubbo-provider dubbo提供者项目,主要用于测试。 mmc-dubbo-doe 主项目,实现dubbo接口调试。 deploy 部署文档 功能特性 极简模式:通过dubbo提供的telnet协议收发数据。 普通模式:通过封装netty客户端收发数据。 用例模式:通过缓存数据,方便下一次操作,依赖普通模式。 增加依赖:通过调用maven命令,下载jar包和热加载到系统,主要用来分析接口方法参数,主要作用在普通模式。 依赖列表:通过分析pom文件,展示已经加载的jar包。 其它特性 springboot 整合 redis,支持spring el 表达式。 springboot 整合 thymeleaf。 springboot 整合 logback。 netty rpc 实现原理。 开发环境 jdk 1.8 maven 3.5.3 dubbo 2.6.1 lombok 1.16.20 idea 2018 windows 7 安装步骤 安装jdk 安装maven,并设置好环境变量,仓库目录。 进入mmc-dubbo-api目录,执行mvn clean install命令,省api的jar包。 进入mmc-dubbo-doe目录,执行mvn clean install 命令,在target目录生成dubbo-doe-1.0.0-RELEASE.jar 在F盘(可以任意盘)创建目录F:\app\doe 把dubbo-doe-1.0.0-RELEASE.jar拷贝到F:\app\doe 把deploy目录中的所有文件拷贝到F:\app\doe 如果您电脑安装了git bash,可以在bash窗口运行 ./deploy.sh start,否则如果没有安装git bash,只能打开cmd切换到F:\app\doe目录,然后执行java -jar dubbo-doe-1.0.0-RELEASE.jar --spring.profiles.active=prd 打开浏览器,访问地址:http://localhost:9876/doe/home/index 全剧终
Dubbo单元测试可以通过编写测试类来实现。在引用\[1\]中的示例代码中,DubboTest类继承了基类CommonTest.java,并使用了注解@Resource来注入DubboService。在测试方法testDubbo()中,通过调用dubboService的sayHello()方法来测试Dubbo服务的功能。使用断言来验证返回结果的正确性。这样可以确保Dubbo服务的正常运行。\[1\] 此外,还可以使用其他方法进行Dubbo单元测试。例如,可以使用Postman来测试Dubbo服务层的方法,或者通过命令行使用Telnet连接Dubbo服务进行操作和访问。具体的方法可以参考引用\[2\]和\[3\]中的文章。\[2\]\[3\] 总之,Dubbo单元测试是为了验证Dubbo服务的功能是否正常。通过编写测试类或使用其他工具来调用Dubbo接口进行测试,可以确保Dubbo服务的质量和稳定性。 #### 引用[.reference_title] - *1* [单元测试(junit+dubbo+mockito)](https://blog.csdn.net/love254443233/article/details/82468510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Dubbo服务测试方法介绍(一)](https://blog.csdn.net/qq_34811445/article/details/116652210)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值