API 監控能夠確保 API 的穩定性。如果一個 API 出現故障或崩潰,它可能會導致整個應用程式無法正常工作。這對使用者和業務來說可能是災難性的。透過監控 API,開發團隊可以及時發現問題並採取措施來修復它們,從而降低應用程式中斷的風險。
作為開發人員,瞭解API生命週期中的每一個步驟可以幫助改善設計流程以及後續的流程,監控工具可以深入瞭解 API 的行為,監控 API 有助於:
- 問題識別;
- 問題修復;
- 功能分析;
- 新版本的迭代。
在 API 管理中,檢視 API 異常監控的監控報告,在 Eolink Apiki 中也是常用的功能,通常你可以在流程綜合報告頁中看到當前流程在選定時間段內的整體監控情況。
1、手動建立監控 API
Eolinker API 網路監控平臺支援從 Eolinker API Management(API管理產品)中匯入API資訊,或者手動建立監控API。
進入API監控頁面,點選 新增API
按鈕,會直接進入API監控編輯頁面。你可以在編輯頁中設定API監控的名稱、請求地址、請求資訊、校驗規則等資訊。
進入API監控編輯頁後,你可以設定API的基本資訊、請求資訊、校驗規則等內容。
API 監控基礎資訊
API監控的基礎資訊包括:
- API請求地址
- API分組、名稱
- API監控的專案環境
- API監控節點:系統會在選中的監控節點區域發起API監控請求
- 監控頻率:系統會在選中的監控節點中按照設定的頻率對API發起監控請求
- 超時限制:當API的響應時間超出設定的限制時間時,系統將會自動中斷該次監控請求,並且報請求超時異常。
請求頭部
你可以輸入或匯入請求頭部。批次匯入的資料格式為 key : value
,一行一條 header
資訊,如:
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json
Date: Mon, 30 Dec 2019 20:49:45 GMT
請求體
請求體支援以下型別:Form-data(表單)、JSON、XML、Raw(自定義文字型別資料)。
Query 引數
Query引數指的是位址列中跟在問號 ?
後面的引數,如以下地址中的 user_name
引數:
shop/query?shop_id=001
批次匯入的資料格式為 ?key=value
,透過 &
分隔多個引數,如:
api.eolinker.com/user/login?user_name=jackliu&user_password=hello
REST 引數
REST引數指的是位址列被斜槓 /
分隔的引數,如以下地址中的 user_name
、user_password
引數。
/user/login/{user_name}/{user_password}
注意,只需要在URL中使用 {}
將REST引數括起來,下方的請求引數名中不需要使用 {}
。
許可權校驗
如果訪問API時需要先進行身份驗證,可以在許可權校驗處填寫校驗的資訊。
2、從介面文件匯入 API
如果你已經使用了 Eolinker API Management(API研發管理) 產品,你可以在建立監控介面的時候直接匯入API Management 的API文件資訊。
進入API監控頁面,點選 新增API
按鈕旁的下拉選單按鈕,在選單中選擇 從API管理匯入
:
在彈窗中選擇要匯入的API並點選確定之後,會進入API監控資訊編輯頁面,在這裡可以編輯每個匯入的API的資訊,一般來說你只需要補充API的請求引數值以及校驗規則即可。
進入API監控編輯頁後,你可以設定API的基本資訊、請求資訊、校驗規則等內容。
3、開啟監控
建立好API之後,在操作欄點選 更多
的按鈕,在下拉選單中選擇 開啟監控
。
也可以在頂部點選 批次操作
按鈕來對API做批次開啟監控:
前置指令碼和後置指令碼
API指令碼分為 API前置指令碼 和 API後置指令碼 兩種,分別對應API 請求前 和 返回資料後的兩個階段。你可以透過編寫Javascript程式碼,在API前置指令碼中改變請求引數,或者是在API後置指令碼中改變返回結果。
API指令碼功能常用於以下幾種情況:
- API請求時對Body進行整體簽名加密,常用於銀行等系統測試中
- API返回結果後對Body進行解密,常用於反爬蟲系統的測試中
- 發起的API請求會依次經過以下流程。其中如果你沒有編寫相應的API指令碼,則會略過API指令碼階段。
返回結果校驗
校驗返回頭部
返回頭部支援以下校驗選項:
校驗方式 | 描述 |
---|---|
存在性校驗 | 判斷是否存在該欄位,如不存在則提示測試失敗 |
值校驗 | 判斷返回內容與預設值是否相等,如不相等則提示測試失敗 |
校驗返回結果
API測試用例支援5種校驗方式:
校驗方式 | 描述 |
---|---|
不校驗 | 無論返回結果是什麼,均認為測試透過 |
校驗狀態碼 | 判斷響應頭部中的HTTP Status Code |
校驗JSON | 判斷響應結果的JSON結構和引數值,可以判斷物件、陣列、欄位等資訊 |
校驗XML | 判斷響應結果的XML結構和引數值,可以判斷物件、陣列、欄位等資訊 |
完全匹配 | 判斷響應結果是否等於預期結果 |
正則匹配 | 透過正規表示式去匹配響應結果,如果匹配的結果集不為空,則認為測試透過 |
存在性校驗
當我們需要判斷返回的頭部/返回結果中的某個欄位是否存在時,可以設定存在性校驗來進行判斷。
存在性校驗 | 說明 |
---|---|
是(預設) | 判斷是否存在該欄位,如不存在則提示測試失敗 |
否 | 不判斷是否存在該欄位 |
型別校驗
設定對引數的型別進行校驗,返回結果的引數型別必須要等於預設的引數型別,否則提示測試失敗。
內容校驗
設定對欄位值的判斷條件,不同型別的欄位可能會有不同的判斷條件。
校驗規則 | 符號 | 說明 |
---|---|---|
不校驗 | [] | 不校驗返回內容,任何值均判斷為正確 |
值-等於 | [value = ] | 返回結果的 值 必須要 等於 預期結果,否則提示測試失敗 |
值-不等於 | [value != ] | 返回結果的 值 必須要 不等於 預期結果,否則提示測試失敗 |
值-大於 | [value > ] | 返回結果的 值 必須要 大於 預期結果,否則提示測試失敗 |
值-小於 | [value < ] | 返回結果的 值 必須要 小於 預期結果,否則提示測試失敗 |
值-包含 | [include = ] | 返回結果的 值 必須要 包含 預期結果,否則提示測試失敗。比如預期結果為“hello”,實際返回結果為“hello world”,則測試結果正確。 |
值-不等於 | [value != ] | 返回結果的 值 必須要 不等於 預期結果,否則提示測試失敗 |
正則 | [Reg = ] | 返回結果的 值 必須要 不等於 預期結果,否則提示測試失敗 |
長度-等於 | [length = ] | 返回結果的 長度 必須要 等於 預期結果,否則提示測試失敗 |
長度-不等於 | [length != ] | 返回結果的 長度 必須要 不等於 預期結果,否則提示測試失敗 |
長度-大於 | [length > ] | 返回結果的 長度 必須要 大於 預期結果,否則提示測試失敗 |
長度-小於 | [length < ] | 返回結果的 長度 必須要 小於 預期結果,否則提示測試失敗 |
迴圈校驗
對於陣列型別(Array[])的返回引數,系統提供了 校驗陣列內元素 的選項,開啟該選項之後,系統會對陣列內的所有元素進行校驗,否則僅校驗陣列內的第一個元素。
例如:
有如下JSON陣列,當 demo_array
欄位(紅色部分)是一個陣列型別時,開啟校驗陣列內元素後會對demo_array
下一級的欄位(藍色部分)進行整體的迴圈校驗。
以下兩張圖的紅色以及藍色部分一一對應。
高階設定
重定向
可以設定是否跟隨請求的重定向(HTTP 狀態碼為301、302)
驗證SSL證照
可以設定是否校驗SSL證照
傳送Eolinker Token頭部
可以設定是否傳送Eolinker Token頭部,Eolinker Token用於標識請求傳送自Eolinker平臺
傳送no-chche頭部
可以設定是否傳送 no-cache
頭部,用於更新快取資料
Eolink Apikit 讓開發人員和操作團隊都可以輕鬆地監控他們所依賴的 API 的狀態和行為。使 DevOps 團隊能夠連續監控異常情況,並使用可操作的上下文資料傳送針對性的警報,以便快速解決出現的問題。瞭解更多關於Eolink Apikit 的 API 監控功能,請訪問:www.eolinker.com