日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

不知道你是否在工作中有遇到過類似情況:

  • dubbo接口調試復雜,需要通過telnet命令或者通過consumer調用來觸發。
  • telnet語句參數格式復雜,每次編寫都要小心謹慎,一旦出錯又需重來。
  • 復雜對象參數傳參調用接口復雜,編寫JAVA api調用接口時間成本較高。

 

上述這些坑我在工作中都有遇見過,發現大部分耗時都會卡在調用dubbo服務做自測的階段,所以后來花費了寫業余時間寫了一款高效的dubbo測試工具開源給大家使用。

這款工具目前已在實際工作中應用半年多,基本功能已經成熟,后續依舊會進行版本維護。

相關的代碼地址為:

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

ps: 如果大家喜歡,希望能給出一顆寶貴的star

關于如何部署本工具

下載了gitlab的代碼之后,你會看到有兩個文件包:iubbo-proxy和iubbo-proxy-web,它們分別正好對應了后端代碼和前端代碼。

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

前端代碼的部署

前端采用非常簡單的vue技術,只需要將文件部署到一臺Nginx上邊即可運作。前端的默認訪問頁面是test-dubbo-web.html。

但是有兩個小點需要改動下js配置

constants.js

這份文件里面編寫了對應的請求server地址,這塊是對應了后端服務的url。

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

由于請求dubbo接口需要通過zk注冊中心來拉去服務名列表,所以需要在iubbo.x.js里面的commonzk中做配置:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

這里的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

啟動成功截圖

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

關于本工具的使用教程

本工具區分了已登錄賬號和未登錄賬號兩類角色,已登錄賬號的使用者可以對請求的用例進行保存,方便下一次提取信息,未登錄賬號雖然沒有保存用例的功能,但是不影響其使用本工具進行測試。

首頁截圖:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

1.指定zk地址

在測試dubbo接口之前,我們通常都會去拉取一遍zk上邊的service地址,操作如下圖:先在文本框點擊,輸入和js配置有關的字母或數字會有模糊匹配的選項供各位選擇:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

選中了zk地址之后,再去點擊拉取zk地址按鈕(以前有同事剛接觸這個工具的時候,這里被繞蒙了~~)

拉取zk地址的時候,后端會根據文章上邊提到的js配置里面的ip值去拉取,拉取成功會有相關提示:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

接下來便是篩選dubbo服務地址的功能,在拉取zk地址下方有一個下拉框,這里面此時應當會被注入zk上所有dubbo服務列表的名稱。

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

選擇對于的service名稱,然后在右邊的“請輸入名稱”文本框中輸入該接口對應的方法名稱(一定要名稱對應)

這里以調用MsgService的sendMsg方法為例:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

然后配置相關的參數和名稱

選擇對應參數類型和值:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

最后發起請求:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

在基礎參數配置項的旁邊,還有一個模塊是專門配置consumer端的額外內容,這些參數項都是在平時工作中可能會應用到的場景,需要的時候可以進行配置。這里面也配備了工作中非常常用的直連選項。

我個人最喜歡使用的還是直連功能,因為在開發過程中,經常需要直連機器做自測:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

假如說希望保存自己曾經發送過的dubbo測試用例,那么你只需先進行登錄賬號,賬號直接往t_user表里面寫入一條數據即可:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

在首頁的右上方有個進入登錄頁面按鈕:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

點擊登錄

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

如何保存請求用例:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

保存用例這里有些小瑕疵,需要用戶手動刷新下頁面才能顯示保存的用例信息:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

點擊選用參數,則頁面又會重新回顯之前使用過的請求信息。

特殊參數請求

該工具支持多種開發中常見的參數格式調用,目前支持常規參數

ps:注意這里的參數格式需要和dubbo方法里面的參數格式按照相同順序相同類型做映射,否則后端程序會返回找不到對應方法

Java的常用基本類型數據:boolean,short,int,long,double,char,float

Java中常用的包裝類數據:

java.lang.String,
java.lang.Integer,
java.lang.Object,
java.util.List,
java.lang.Class,
java.lang.Long,
java.lang.Boolean,
java.util.Map,
java.util.Date,
java.lang.Float,
java.lang.Double

對于簡單的數據類型傳遞

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

多參數,中英文混合傳遞

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

List類型參數的傳遞

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

Class類型的參數傳遞

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

Map類型的參數傳遞

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

Date類型的參數傳遞

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

自定義對象參數傳參

如果在實際應用中遇到了這種場景,需要調用以下的接口,那么這個使用就需要使用自定義參數了:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

圖片

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 


開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

復雜類型自定義參數傳遞

假設遇到了List類型參數,而且傳輸的List里面包含有自定義對象,例如下邊這種類型:

List<UserDTO> testUserDtoList(List<UserDTO> userDTOList,Class clazz);

那么此時的傳參案例可以像下邊這樣來寫:

開源一款超實用的 Dubbo 測試工具,已用半年,感覺很有feel

 

易錯點歸納

注意請求的參數順序要和方法對應的參數順序一致,假設服務的方法定義如下:

<T> List<T> getList(List<Long> var1, Class<T> var2);

那么傳入的參數就必須先填List參數,再寫Class參數。

  • 正確示例:(先寫了List參數,再寫Class參數)
  • 錯誤示例:(先寫了Class參數,再寫List參數)

分享到:
標簽:測試工具
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定