转载

自己动手实现 Dubbo 接口测试工具

一、前言

dubbo框架对于java开发来说并不陌生,通常新增一个dubbo接口,我们可以直接用telnet测试。但是工作中有时遇到一些dubbo接口的实现会获取上下文中的信息,如果需要测试的话就只能另外编写代码设置上下文,调用接口实现,相对来说会比较麻烦。闲暇之际基于springboot做了个小工具解决这个问题,希望可以帮助有需要的同学,源码地址为

https://github.com/xhjcehust/dubbo-invoker ,欢迎fork或star~

二、功能

实现http->dubbo的转换,任意dubbo接口都可以通过http请求来转发代理实现,支持dubbo attachments,可部署用于测试环境的dubbo接口调试

三、原理

原理比较简单,http请求经过dubbo-invoker解析之后,泛化调用到后端dubbo provider,执行完成后将结果返回,整个数据流程如下:

自己动手实现 Dubbo 接口测试工具

四、用法

1.本地启动注册中心zk

默认注册中心的地址是zookeeper://127.0.0.1:2181,
如需替换,修改
dubbo-invoker-provider/src/main/resources/dubbo-demo-provider.xml 和
dubbo-invoker-proxy/src/main/resources/application.properties中的注册中心配置

2.启动示例dubbo-invoker-provider

org.github.xhjcehust.dubbo.provider.Provider#main
  • 注:dubbo-invoker-provider仅用于provider demo展示,如果已经部署了dubbo provider,可跳过此步骤

3.启动dubbo-invoker-proxy:

org.github.xhjcehust.dubbo.proxy.DubboInvokerApplication#main

4.http请求示例

  • curl请求:


 

curl -H "Content-type: application/json" -X POST -d '

{

"interfaceName": "org.github.xhjcehust.dubbo.provider.api.EchoService",

"methodName": "echoPojo",

"argTypes": [

"org.github.xhjcehust.dubbo.provider.model.Pojo"

],

"argObjects": [

{

"count": 1,

"value": "val"

}

],

"version": "1.0",

"group": "test",

"attachments": {

"key": "value"

}

}' http://127.0.0.1:8080/dubboInvoker/index

返回:

{"count":1,"class":"org.github.xhjcehust.dubbo.provider.model.Pojo","value":"val"}
  • postman请求:

自己动手实现 Dubbo 接口测试工具

想要获取最新技术文章?欢迎订阅微信公众号----软件编程之路

自己动手实现 Dubbo 接口测试工具

原文  https://mp.weixin.qq.com/s?__biz=MzIxNzg5ODE0OA==&mid=2247483736&idx=1&sn=637a0fafd6342d6aeaf4c40ad744bf72&chksm=97f38c93a084058541b9e14f1520bd772744ab88da9b5a161a8e196495bb7e625fe936ff2dbe&scene=90&xtrack=1&sessionid=1565625972&subscene=93&clicktime=1565625976&ascene=56&devicetype=iOS12.1&version=1700032a&nettype=WIFI&abtest_cookie=BAABAAoACwASABMABAAjlx4AVpkeAM6ZHgDxmR4AAAA=&lang=zh_CN&fontScale=100&pass_ticket=9FT8bC9nbrtNQpePyiv1w66M33a4e2NG8gbTQ4LL39zEnej9/d5gwnrnerfLgcOn&wx_header=1
正文到此结束
Loading...