apitester 模塊是一個用于API管理、測試的模塊。
# 概述
本模塊的設計目標是提供開發人員、產品人員等相關角色,可以管理和測試API,可以將系統內部或外部API信息保存在系統內,使得產品具有自完備的特性和持續交付的特性,并可進行靈活的二次開發。
## 主要特性
1. 支持API分類管理,支持自定義用戶環境變量,支持API測試用例管理。
2. 支持HTTP、HTTPS接口測試用例的在線運行。(更多協議支持規劃在模塊roadmap中)
3. 支持接口文檔管理。
4. 已集成微信第三方平臺相關接口測試用例,開發者可快速進行第三方平臺應用開發。
5. 支持多帳號多應用使用環境,易于團隊協作,不限制接口數量、用戶數量、請求數量。
6. 基于catchadmin開發,模塊安裝簡單,使用便捷,支持模塊數據導入導出。
7. 開源開放易于二次開發,測試用例可共享,形成產品API知識庫。
8. 支持私有化部署、云原生部署。
演示地址:www.uctoo.com 控制臺使用demo帳號登錄
模塊使用界面截圖:
<table>
<tr>
<td><img src="https://gitee.com/UCT_admin/materials/raw/master/uctoo_apitester/images/api%20category%20list.png"></td>
</tr>
<tr>
<td><img src="https://gitee.com/UCT_admin/materials/raw/master/uctoo_apitester/images/api%20category%20edit.png"></td>
</tr>
<tr>
<td><img src="https://gitee.com/UCT_admin/materials/raw/master/uctoo_apitester/images/api%20user%20env%20list.png"></td>
</tr>
<tr>
<td><img src="https://gitee.com/UCT_admin/materials/raw/master/uctoo_apitester/images/api%20user%20env%20edit.png"></td>
</tr>
<tr>
<td><img src="https://gitee.com/UCT_admin/materials/raw/master/uctoo_apitester/images/api%20test%20case%20list.png"></td>
</tr>
<tr>
<td><img src="https://gitee.com/UCT_admin/materials/raw/master/uctoo_apitester/images/api%20test%20case%20edit.png"></td>
</tr>
<tr>
<td><img src="https://gitee.com/UCT_admin/materials/raw/master/uctoo_apitester/images/apirun.png"></td>
</tr>
</table>
## 產品架構
1. 基于catchadmin標準模塊開發方式開發,可在管理后臺一鍵安裝模塊和初始化模塊數據。
2. 前端采用axios技術選型,前端可形成標準客戶端接口庫。
3. 本地接口(數據源類型local)主要沿用catchadmin基于用戶身份的接口鑒權方案,需在API測試用例header添加authorization參數,其值為登錄接口返回的值。
4. 在掃碼登錄后注冊用戶帳號接口測試用例,演示了采用微信掃碼登錄后獲取到的用戶access_token進行接口鑒權的示例。
5. 微信相關開發使用了[uctoo/think-easywechat SDK](https://gitee.com/UCT/think-easywechat) 集成catchadmin (TP6+VUE) 和 easywechat 4,支持微信第三方平臺、微信小程序云開發、微信支付服務商等特性。
## 安裝教程
### 運行環境依賴
PHP >= 7.1.0
Mysql >= 5.5.0 (需支持innodb引擎)
PDO PHP Extension
MBstring PHP Extension
CURL PHP Extension
ZIP Extension
Composer
catchadmin
### 分步驟安裝
1. 從https://gitee.com/jaguarjack/catchAdmin 或 https://gitee.com/uctoo/uctoo 下載https://gitee.com/uctoo/uctoo/tree/master/catch/apimanager 目錄模塊,復制到catchadmin對應目錄
2. apimanager/catch-admin-vue 目錄內是模塊前端vue項目代碼,復制到前端VUE項目對應目錄,注意如和原前端vue項目目錄的文件有沖突,需自行合并代碼版本。如模塊新依賴了第三方組件,需要在前端項目目錄重新運行 yarn install 命令。
3. 登錄管理后臺,在系統管理->模塊管理啟用API管理模塊,即可安裝模塊和初始化模塊數據。
### 云原生安裝
1. 可在 https://www.uctoo.com 注冊開發者帳號,登錄管理后臺,通過云開發功能模塊,即可采用云原生方式開通和部署一套獨立的UCToo運行實例。(開發中)
### docker安裝
可參考uctoo-docker項目 https://gitee.com/UCT/uctoo-docker
## 使用手冊
1. 可以通過API管理->API分類功能增刪改查API分類。
2. 可以通過API環境變量功能增刪改查用戶環境變量。環境變量的key值以{{key}}方式定義,在API測試用例中對應的{{key}}值將替換為環境變量的value值。每個用戶可以創建多組環境變量,可以切換當前選中的環境變量組。
3. 可以通過API列表功能增刪改查API測試用例。api_url、header、body、query、auth字段支持環境變量。
4. 可以對已添加的API測試用例執行測試操作,在API測試界面,可以對api_url、header、body、query、auth等字段進行自定義編輯。發送按鈕可以實際執行API測試用例,獲得接口返回值。
具體請參考 http://www.hmoore.net/doc_uctoo/manual
## 開發說明
### 模塊roadmap
1. 通過解析路由文件router.php中的數據,自動生成系統接口(system類型)的所有測試用例。即實現系統接口的可視化測試。
2. 實現API管理功能,即可通過界面配置進行基于appid的接口權限管理,OAUTH2接口鑒權方案。
3. 實現API測試用例中API文檔字段支持markdown編輯和展示。
4. 實現除POST、GET、PUT、DELETE之外的其他接口請求方式。
5. 實現全部content-type類型的支持。
6. 實現測試數據的保存、歷史記錄等功能。
7. 實現notify類型接口的測試,目前還沒有在市面上見過類似功能的產品,但是實際開發中notify類型的接口在微信第三方平臺、各種支付回調、硬件數據上傳等很多場景都有遇到。
8. 實現API測試用例的公開(共享)、私有、保護(有償獲取)等特性。
具體請參考開源版開發手冊 http://www.hmoore.net/doc_uctoo/uctoo_dev 及 本開源項目示例