基於 Django 的 Dubbo 介面測試工具平臺

627886474發表於2020-09-23

日常工作中會需要對Dubbo介面進行呼叫和測試,之前是通過指令碼請求,為了做到通用性,所以弄了個小的測試工具平臺,後續會增加流量回放功能,用來支援壓測場景。

該平臺採用Django rest framework +VUE的前後端分離,前端使用了網上的一個開源專案,有需要的可以參考 https://github.com/PanJiaChen/vue-admin-template

專案啟動

啟動後臺專案

git 拉去master程式碼 TestPlatform https://github.com/627886474/TestPlatform

在settings中修改你的mysql配置

在config.ini中填上你zookeeper的地址

然後下載相關依賴包

pip install -r package.txt

生成資料庫表

python manage.py makemigrations
python manage.py migrate

最後啟動後臺服務

python manage.py runserver

服務啟動成功,接下來 啟動前端專案

啟動前端專案

git 拉去master程式碼 TestPlatform-web

https://github.com/627886474/TestPlatform-web
進入主目錄

npm install
npm run dev

介面演示
註冊使用者,手機號,郵箱不能重複

註冊成功後,登入賬號,進入後臺管理頁面

進入Dubbo介面 服務呼叫選單,填入相關引數,對於不同Dubbo介面的入參說明請參考最後的說明

請求完成後,會有一條請求記錄,可以“一鍵填充”。這樣可以方便你使用別人的請求引數,不用在自己拼接引數

請求引數說明:
一共有四個引數:

service_name: 服務名,如 com.zl.ITestService
dubbo_method: 方法名,如 add
params_type: 入參的型別,這裡只有兩種 “class”和"others" ,"class”表示入參是實體類,“others”表示是實體類之外的所有型別
params: 方法需要的引數
請求示例:

服務中的方法是 :

Object addStudent(UserAO user)
{
"service_name":"com.zl.ITestService",
"dubbo_method":"add",
"params_type":"class",
"params":{
"class":"com.zl.entity.ao.UserAO",
"school":[
"1",
"2"
],
"name":"zl",
"tuofa":"true"
}
}

服務中的方法是 :

Object getStudent(Integer id, List<String> name),引數需要使用 [] 包起來
{
"service_name": "com.zl.ITestService",
"dubbo_method": "add",
"params_type":"others",
"params": [
123,
[
"zl"
]
]
}

列舉類請求:

Object getStudent(Integer itemId, StudentEnum studentEnum);

列舉類的類名: com.zl.item.entity.StudentEnum

需要使用到的列舉類:GOOD_STUDENT,填寫格式如下 :

{
"service_name": "com.zl.ITestService",
"dubbo_method": "add",
"params_type":"others",
"params": [
123,{"name": "GOOD_STUDENT", "class": "com.zl.item.entity.StudentEnum "}
]
}

常見的異常情況:

1、請求引數異常

請求Dubbo介面如果填入的引數有誤,會報 no such method 的錯誤,請檢查一下引數是否正常

2、對於入參是Boolean型別的資料

在json中,直接 使用{“data”:true}即可,但是在python請求時需要使用 “true”,加上雙引號

如果你遇到了其他的問題歡迎留言

配套教程請檢視 :https://blog.csdn.net/zxc19854/article/details/108344069

專案地址: https://github.com/627886474/TestPlatform

相關文章