一、什么是介面測驗?
所謂介面,是指同一個系統中模塊與模塊間的資料傳遞介面、前后端互動、跨系統跨平臺跨資料庫的對接,而介面測驗,則是通過介面的不同情況下的輸入,去對比輸出,看看是否滿足介面規范所規定的功能、安全以及性能方面的要求,
二、為什么要做介面測驗?
1、相比系統測驗,更早介入測驗,提高效率
2、可以發現前端測驗不了的問題,提高版本質量
3、介面標準化了,更容易實作自動化和持續集成,降低測驗成本
因此在軟體測驗招聘崗位的要求中,無論是功能測驗、自動化測驗、性能測驗亦或測驗開發崗位,介面測驗都是必須掌握的!

三、如何開展介面測驗?
介面測驗的開展一般包含5個部分:介面檔案分析、介面用例設計、執行介面用例、定位bug提交并跟蹤、輸出介面測驗報告,
1、介面檔案分析
介面檔案一般是由后端開發提供,可以是在線的swagger也可以是word,

若開發未提供介面檔案,則可通過抓包工具fiddler或charles去抓取介面資訊進行分析,進行介面測驗,

獲取到介面檔案后,我們需要理清楚每個介面包含的請求、回應資訊,概括為 介面資訊五要素:
1)介面地址url:
例注冊介面地址:http://api.lemonban.com:8765/futureloan/member/register
http-請求協議,api.lemonban.com-域名或ip,8765-埠號,/futureloan/member/register-資源路徑
2)請求方法:
看開發定義的請求方法是什么,測驗就對應用什么方法,restful風格中常見的請求方法為post、get、put、patch、delete等
3)請求頭:
發送請求到服務器,包含的頭部資訊,常見的content-type,
4)請求體:
發送請求到服務器,具體傳遞的資料,例如要完成注冊介面的呼叫,請求體包含手機號mobile_phone、密碼pwd、用戶名reg_name、驗證碼verification_code,
5)回應內容:
介面檔案中描述的回應內容,與介面測驗的實際結果做比較,可以判斷當前介面是否通過,回應內容包含:回應碼-http狀態碼、回應頭、回應體,
2、介面用例設計
介面用例設計跟功能測驗思維相通,需要:1)清楚專案業務 2)運用用例設計8大方法:等價類、邊界值、場景法、因果圖、判定表、正交試驗法、狀態遷移法、錯誤推測法,
以下是介面用例模板參考:

3、執行介面用例,進行介面測驗
介面測驗原理: 模擬客戶端發送請求到服務器,服務器接收請求并處理,回傳回應到客戶端, 客戶端接收回應這樣的一個程序,
通過介面測驗原理可知,進行介面測驗需要借助工具或代碼,主流的介面測驗工具Jmeter、postman,使用工具撰寫腳本,需要結合介面專案具體應用場景來設計,運用關聯、引數化、斷言等技術,

4、發現bug、定位、提交并跟蹤
怎么判斷是否是bug呢?
1)介面測驗中回應結果錯誤,回傳了錯誤的code碼、msg資訊:
- 判斷請求:請求地址、方式、請求頭、請求正文是否正確,如果不正確則修改對應請求資訊再做發送;如果正確,則說明是服務器端問題
- 進一步查看服務器日志、資料庫資訊,并整理資訊提交bug
2)介面測驗中回應結果,code碼、msg正確,但回傳的data資料不正確:
- 查看資料庫資料正確完整性,并結合服務器日志,整理資訊提交bug
3)介面測驗中回應結果正確,但若是增刪改業務操作:
- 需進一步確認到資料庫層面,資料增刪改的正確性
4)考慮安全性:一般介面對請求會做出一些限制,比如請求次數、請求頻率限制;涉及敏感資訊是否加密
5、介面測驗報告
介面測驗報告的整理這個看公司要求,有些公司是在整個專案測驗結束后,整理一份統一的測驗報告,有些公司會要求輸出階段性的測驗報告,

四、介面測驗常見面試題
- 什么是介面?
- 如果模塊請求http 改為了https,測驗方案應該如何制定,修改?
- 用HTTP 協議除錯代理工具有什么?詳細說明抓取 HTTPS 協議的設定程序?
- 介面產生的垃圾資料如何清理?
- 下個介面請求引數依賴上個介面的回傳資料?
- 介面測驗的步驟有哪些?
- 介面測驗中依賴登錄狀態的介面如何測驗?
- 依賴于第三方資料的介面如何進行測驗?
- 檔案上傳的介面如何處理?
- 解釋什么是SOAP?
- 解釋什么是REST API?
- API測驗發現的Bug型別是什么?
- 我們測驗的介面屬于哪一類?
- 說下你介面測驗問題如何定位?
- Cookie 保存在哪里?
- HTTP有哪些請求方法?
- 介面自動化測驗的流程?
- 介面測驗用例的撰寫要點有哪些?
- 提到UI級別測驗和API測驗之間的關鍵區別?
- HTTPS的作業原理?
- HTTPS和HTTP的區別?
- POST和GET有什么區別?
- Session與Cookie有什么區別?
- TCP和UDP有什么區別?
- 在API測驗中測驗的常用協議是什么?
- Jmeter、postman工具的區別?
- 說下介面工具如何去操作資料庫?
- 傳參資料格式除了json格式還有哪些?
- 介面測驗資料過多時如何進行測驗?
- 你們請求引數加密怎么處理的?
- 介面測驗中有哪些印象深刻的bug?
- 專案中有測驗過多少個介面?寫過多少用例?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538716.html
標籤:其他
