API 監(jiān)控能夠確保 API 的穩(wěn)定性辞州。如果一個 API 出現(xiàn)故障或崩潰,它可能會導(dǎo)致整個應(yīng)用程序無法正常工作砸琅。這對用戶和業(yè)務(wù)來說可能是災(zāi)難性的宋距。通過監(jiān)控 API,開發(fā)團隊可以及時發(fā)現(xiàn)問題并采取措施來修復(fù)它們症脂,從而降低應(yīng)用程序中斷的風(fēng)險谚赎。
作為開發(fā)人員,了解API生命周期中的每一個步驟可以幫助改善設(shè)計流程以及后續(xù)的流程诱篷,監(jiān)控工具可以深入了解 API 的行為壶唤,監(jiān)控 API 有助于:
- 問題識別;
- 問題修復(fù)棕所;
- 功能分析闸盔;
- 新版本的迭代。
在 API 管理中琳省,查看 API 異常監(jiān)控的監(jiān)控報告迎吵,在 Eolink Apiki 中也是常用的功能,通常你可以在流程綜合報告頁中看到當(dāng)前流程在選定時間段內(nèi)的整體監(jiān)控情況针贬。
1击费、手動創(chuàng)建監(jiān)控 API
Eolinker API 網(wǎng)絡(luò)監(jiān)控平臺支持從 Eolinker API Management(API管理產(chǎn)品)中導(dǎo)入API信息,或者手動創(chuàng)建監(jiān)控API桦他。
進入API監(jiān)控頁面蔫巩,點擊 添加API
按鈕,會直接進入API監(jiān)控編輯頁面快压。你可以在編輯頁中設(shè)置API監(jiān)控的名稱圆仔、請求地址、請求信息蔫劣、校驗規(guī)則等信息坪郭。
進入API監(jiān)控編輯頁后,你可以設(shè)置API的基本信息拦宣、請求信息截粗、校驗規(guī)則等內(nèi)容。
API 監(jiān)控基礎(chǔ)信息
API監(jiān)控的基礎(chǔ)信息包括:
- API請求地址
- API分組鸵隧、名稱
- API監(jiān)控的項目環(huán)境
- API監(jiān)控節(jié)點:系統(tǒng)會在選中的監(jiān)控節(jié)點區(qū)域發(fā)起API監(jiān)控請求
- 監(jiān)控頻率:系統(tǒng)會在選中的監(jiān)控節(jié)點中按照設(shè)置的頻率對API發(fā)起監(jiān)控請求
- 超時限制:當(dāng)API的響應(yīng)時間超出設(shè)定的限制時間時,系統(tǒng)將會自動中斷該次監(jiān)控請求意推,并且報請求超時異常豆瘫。
請求頭部
你可以輸入或?qū)胝埱箢^部。批量導(dǎo)入的數(shù)據(jù)格式為 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(自定義文本類型數(shù)據(jù))磅崭。
Query 參數(shù)
Query參數(shù)指的是地址欄中跟在問號 ?
后面的參數(shù),如以下地址中的 user_name
參數(shù):
shop/query?shop_id=001
批量導(dǎo)入的數(shù)據(jù)格式為 ?key=value
瓦哎,通過 &
分隔多個參數(shù)砸喻,如:
api.eolinker.com/user/login?user_name=jackliu&user_password=hello
REST 參數(shù)
REST參數(shù)指的是地址欄被斜杠 /
分隔的參數(shù),如以下地址中的 user_name
蒋譬、user_password
參數(shù)割岛。
/user/login/{user_name}/{user_password}
注意,只需要在URL中使用 {}
將REST參數(shù)括起來犯助,下方的請求參數(shù)名中不需要使用 {}
癣漆。
權(quán)限校驗
如果訪問API時需要先進行身份驗證,可以在權(quán)限校驗處填寫校驗的信息剂买。
2惠爽、從接口文檔導(dǎo)入 API
如果你已經(jīng)使用了 Eolinker API Management(API研發(fā)管理) 產(chǎn)品,你可以在創(chuàng)建監(jiān)控接口的時候直接導(dǎo)入API Management 的API文檔信息瞬哼。
進入API監(jiān)控頁面疆股,點擊 添加API
按鈕旁的下拉菜單按鈕,在菜單中選擇
從API管理導(dǎo)入
:
在彈窗中選擇要導(dǎo)入的API并點擊確定之后倒槐,會進入API監(jiān)控信息編輯頁面旬痹,在這里可以編輯每個導(dǎo)入的API的信息,一般來說你只需要補充API的請求參數(shù)值以及校驗規(guī)則即可讨越。
進入API監(jiān)控編輯頁后两残,你可以設(shè)置API的基本信息、請求信息把跨、校驗規(guī)則等內(nèi)容人弓。
3、開啟監(jiān)控
創(chuàng)建好API之后着逐,在操作欄點擊 更多
的按鈕崔赌,在下拉菜單中選擇 開啟監(jiān)控
。
也可以在頂部點擊 批量操作
按鈕來對API做批量開啟監(jiān)控:
前置腳本和后置腳本
API腳本分為 API前置腳本 和 API后置腳本 兩種耸别,分別對應(yīng)API 請求前 和 返回數(shù)據(jù)后的兩個階段健芭。你可以通過編寫Javascript代碼,在API前置腳本中改變請求參數(shù)秀姐,或者是在API后置腳本中改變返回結(jié)果慈迈。
API腳本功能常用于以下幾種情況:
- API請求時對Body進行整體簽名加密,常用于銀行等系統(tǒng)測試中
- API返回結(jié)果后對Body進行解密省有,常用于反爬蟲系統(tǒng)的測試中
- 發(fā)起的API請求會依次經(jīng)過以下流程痒留。其中如果你沒有編寫相應(yīng)的API腳本谴麦,則會略過API腳本階段。
返回結(jié)果校驗
校驗返回頭部
返回頭部支持以下校驗選項:
校驗方式 | 描述 |
---|---|
存在性校驗 | 判斷是否存在該字段伸头,如不存在則提示測試失敗 |
值校驗 | 判斷返回內(nèi)容與預(yù)設(shè)值是否相等匾效,如不相等則提示測試失敗 |
校驗返回結(jié)果
API測試用例支持5種校驗方式:
校驗方式 | 描述 |
---|---|
不校驗 | 無論返回結(jié)果是什么,均認(rèn)為測試通過 |
校驗狀態(tài)碼 | 判斷響應(yīng)頭部中的HTTP Status Code |
校驗JSON | 判斷響應(yīng)結(jié)果的JSON結(jié)構(gòu)和參數(shù)值恤磷,可以判斷對象面哼、數(shù)組、字段等信息 |
校驗XML | 判斷響應(yīng)結(jié)果的XML結(jié)構(gòu)和參數(shù)值碗殷,可以判斷對象精绎、數(shù)組、字段等信息 |
完全匹配 | 判斷響應(yīng)結(jié)果是否等于預(yù)期結(jié)果 |
正則匹配 | 通過正則表達(dá)式去匹配響應(yīng)結(jié)果锌妻,如果匹配的結(jié)果集不為空代乃,則認(rèn)為測試通過 |
存在性校驗
當(dāng)我們需要判斷返回的頭部/返回結(jié)果中的某個字段是否存在時,可以設(shè)置存在性校驗來進行判斷仿粹。
存在性校驗 | 說明 |
---|---|
是(默認(rèn)) | 判斷是否存在該字段搁吓,如不存在則提示測試失敗 |
否 | 不判斷是否存在該字段 |
類型校驗
設(shè)置對參數(shù)的類型進行校驗,返回結(jié)果的參數(shù)類型必須要等于預(yù)設(shè)的參數(shù)類型吭历,否則提示測試失敗堕仔。
內(nèi)容校驗
設(shè)置對字段值的判斷條件,不同類型的字段可能會有不同的判斷條件晌区。
校驗規(guī)則 | 符號 | 說明 |
---|---|---|
不校驗 | [] | 不校驗返回內(nèi)容摩骨,任何值均判斷為正確 |
值-等于 | [value = ] | 返回結(jié)果的 值 必須要 等于 預(yù)期結(jié)果,否則提示測試失敗 |
值-不等于 | [value != ] | 返回結(jié)果的 值 必須要 不等于 預(yù)期結(jié)果朗若,否則提示測試失敗 |
值-大于 | [value > ] | 返回結(jié)果的 值 必須要 大于 預(yù)期結(jié)果恼五,否則提示測試失敗 |
值-小于 | [value < ] | 返回結(jié)果的 值 必須要 小于 預(yù)期結(jié)果,否則提示測試失敗 |
值-包含 | [include = ] | 返回結(jié)果的 值 必須要 包含 預(yù)期結(jié)果哭懈,否則提示測試失敗灾馒。比如預(yù)期結(jié)果為“hello”,實際返回結(jié)果為“hello world”遣总,則測試結(jié)果正確睬罗。 |
值-不等于 | [value != ] | 返回結(jié)果的 值 必須要 不等于 預(yù)期結(jié)果,否則提示測試失敗 |
正則 | [Reg = ] | 返回結(jié)果的 值 必須要 不等于 預(yù)期結(jié)果旭斥,否則提示測試失敗 |
長度-等于 | [length = ] | 返回結(jié)果的 長度 必須要 等于 預(yù)期結(jié)果容达,否則提示測試失敗 |
長度-不等于 | [length != ] | 返回結(jié)果的 長度 必須要 不等于 預(yù)期結(jié)果,否則提示測試失敗 |
長度-大于 | [length > ] | 返回結(jié)果的 長度 必須要 大于 預(yù)期結(jié)果琉预,否則提示測試失敗 |
長度-小于 | [length < ] | 返回結(jié)果的 長度 必須要 小于 預(yù)期結(jié)果董饰,否則提示測試失敗 |
循環(huán)校驗
對于數(shù)組類型(Array[])的返回參數(shù),系統(tǒng)提供了 校驗數(shù)組內(nèi)元素 的選項圆米,開啟該選項之后卒暂,系統(tǒng)會對數(shù)組內(nèi)的所有元素進行校驗,否則僅校驗數(shù)組內(nèi)的第一個元素娄帖。
例如:
有如下JSON數(shù)組也祠,當(dāng) demo_array
字段(紅色部分)是一個數(shù)組類型時,開啟校驗數(shù)組內(nèi)元素后會對demo_array
下一級的字段(藍(lán)色部分)進行整體的循環(huán)校驗近速。
以下兩張圖的紅色以及藍(lán)色部分一一對應(yīng)诈嘿。
高級設(shè)置
重定向
可以設(shè)置是否跟隨請求的重定向(HTTP 狀態(tài)碼為301、302)
驗證SSL證書
可以設(shè)置是否校驗SSL證書
發(fā)送Eolinker Token頭部
可以設(shè)置是否發(fā)送Eolinker Token頭部削葱,Eolinker Token用于標(biāo)識請求發(fā)送自Eolinker平臺
發(fā)送no-chche頭部
可以設(shè)置是否發(fā)送 no-cache
頭部奖亚,用于更新緩存數(shù)據(jù)
Eolink Apikit 讓開發(fā)人員和操作團隊都可以輕松地監(jiān)控他們所依賴的 API 的狀態(tài)和行為。使 DevOps 團隊能夠連續(xù)監(jiān)控異常情況析砸,并使用可操作的上下文數(shù)據(jù)發(fā)送針對性的警報昔字,以便快速解決出現(xiàn)的問題。