YAPI 重點功能使用介紹
1 項目配置
建立項目并填寫基本資訊
成員配置
資料導入(從其它API管理工具遷移接口文檔)
環境配置
與swagger自動同步(已經使用了swagger的項目)
釘釘通知配置
2. 接口調試
接口登陸驗證
在實際使用中,我們需要調試接口是否正常工作(通達、正确),但是接口都需要登陸才能請求,這種情況下,我們可以使用全局請求配置功能,将登陸後擷取到的
token
動态添加到每一個接口的
requestHeader
中去:
定時自動重新整理token
此功能需要安裝【接口自動鑒權】插件(
yapi-plugin-interface-oauth2-token
)
在項目設定面闆找到【接口自動鑒權】插件,從左側選擇需要配置自動重新整理token的環境,并填寫相關資訊:
點選儲存,然後去環境中配置通用header:
當設定的間隔時間到了之後,插件就會自動請求擷取TOKEN接口,将結果中傳回的TOKEN值拿到,替換環境配置中設定的Header中的token字段的值。
token的值需要手動登陸系統一次獲得。
參數傳遞
有時候,我們需要一系列自動化測試,比如請求清單接口後再請求清單傳回的某條資料的詳情,這時候詳情頁接口需要的ID就需要從清單頁接口的傳回中擷取。
此時可以在測試集合裡的詳情頁接口裡配置某項參數為動态參數,該參數将讀取清單接口傳回值中的資料。
消息通知和接口動态
消息通知分為系統本身的通知和第三方插件實作的通知,本身的通知,在自己所在小組的接口發生變化時會通過系統發送到你的賬号的通知清單裡,但是一般情況下,開發人員無法實時去檢查自己的消息清單,是以主要還是使用第三方通知。
第三方通知需要安裝插件,目前發現有兩個插件:
-
: 這個可以将接口變動推送到釘釘機器人。yapi-plugin-dingding
-
: 這個可以将接口變動推送到釘釘機器人和企業微信等,并且定制化更高,推薦使用這個。yapi-plugin-notifier
安裝插件後,當接口發生任何變動,系統都會将變動推送到釘釘上,點選釘釘上的連結可以直接跳轉到接口文檔頁面。
當然,具體哪些地方發生了變化,在接口文檔頁面無法展現,就需要進入到接口動态面闆中檢視改動詳情。
3 mock相關
在YAPI中,有很多地方可以進行mock設定
全局mock腳本
全局Mock腳本允許對所有接口的傳回做統一響應處理,即不管請求什麼接口的mock資料,最終都會經過全局mock處理一遍。
已上圖為例,YAPI的所有mock請求的響應資料都位于
mockJson
對象中,我們在全局mock腳本中将這個對象的code屬性改為502後,我們不管請求什麼接口的mock資料,傳回的mock資料中的code屬性都會是502。
當然,除了可以改響應資料外,還可以全局修改請求和響應的其它一些對象:
請求
-
請求的 HTTP 頭header
-
請求參數,包括 Body、Query 中所有參數params
-
請求帶的 Cookiescookie
響應
-
接口定義的響應資料 Mock 模闆mockJson
-
響應的 HTTP 頭resHeader
-
響應的 HTTP 狀态碼httpCode
-
Mock 響應延時,機關為 msdelay
3.4.2.2 接口Mock期望
接口的進階Mock功能裡,可以添加mock期望,當我們期望某個請求參數為特定值,則傳回特定的mock資料時,就可以添加mock期望。
這樣,當YAPI檢測到該接口符合設定的要求時,就會傳回我們事先填寫好的期望資料。
接口Mock 腳本
接口mock腳本使用方法和全局mock腳本一樣,隻不過它針對的是單個接口,而非整個項目。
字段Mock配置
在接口編輯面闆,請求參數和傳回資料的每一個字段,都可以為其配置mock規則,這樣,當我們請求mock資料時,該字段的值就會符合我們設定的規則。
上述四種 mock 方式,如果針對同一個字段進行配置,那麼它們的優先級是: 接口mock期望 > 接口mock腳本 > 全局mock腳本 > 字段mock配置。
mock 寫法介紹
mock寫法-基礎
- 中文标題:
@ctitle(minlength,maxlength)
- 中文人名:
@cname
- 中文句子:
@csentence(minlength, maxlength)
- 中文段落:
@cparagraph
- 郵箱:
@email
- 日期:
@date(format)
- 時間:
@time(format)
- 日期 + 時間:
@datetime(format)
- 目前時間:
@now(unit?, format)
- 整數:
@integer(min,max)
- 小數:
@float
- 布爾:
@boolean
- 省份:
@province
- 城市:
@city
- 縣鄉:
@county
- URL:
@url
- 圖檔:
@image(size, background, foreground, format, text)
mock寫法進階
@pick(arr)
:從給定數組中随機選擇一個元素
比如,需要模拟電話号碼:
@pick(['135', '138', '181', '157'])@integer(10000000,99999999)