一、為什麼要做接口自動化
- UI能模拟使用者的真實行為,但是受外部的原因,如電腦卡頓,浏覽器卡頓,網速,需求變動等,進而容易造成腳本執行失敗,維護成本較高,投入較高等問題
- 接口測試直接驗證子產品邏輯的正确性,去除UI幹擾
- 接口測試難度低于UI測試,執行效率高于UI,可測試的代碼覆寫率高,維護成本低,屬于低成本,高收益
- 有些項目産品資料清單的内容比較多,不好定位,難以開展UI自動化測試
- 接口自動化能夠解放人力,提升工作效率
二、了解一波接口
什麼是接口
接口一般來講分為兩種:
- 程式内部的接口:方法與方法、子產品與子產品之間的互動,程式内部抛出的接口,如登入發帖,發帖就必須要登入,如果不登入不能發帖,發帖和登入這兩個子產品之間就要有互動,就會抛出一個接口,進行内部系統調用。
- 系統對外的接口:從别人的網站或伺服器上擷取資源或資訊,對方不會提供資料庫共享,隻能提供一個寫好的方法來擷取資料,如購物網站和第三方支付之間,購物網站支付時可選擇第三方支付方法,但第三方不會提供自己的資料庫給購物網站,隻會提供一個接口,供購物網站進行調用。
常用接口
- http接口走http協定,通過路徑來區分調用方法,請求封包一般是key-value形式的,傳回封包一般是json串,常用的是get和post方法來請求。
- webservice接口走的soap協定,通過http傳輸,請求封包和傳回封包都是xml格式的。
http登入接口文檔範例
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwcDO0gjM2YTOtIjM1ATN2EDOxEzMxAjMyAjMtcjN4gTM38CXxAjMyAjMvw1N2gDOxczLcd2bsJ2Lc12bj5ycn9Gbi52YuIjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
擷取接口關鍵資訊
- 開發提供接口文檔/接口規範(正規流程),如上接口文檔範例;
說明:如果沒有接口規範/文檔(不正規流程),需要使用抓包工具,如Fiddler、wireshark、httpwatch或直接在谷歌或火狐浏覽器F12等擷取接口關鍵資訊;
- 接口關鍵資訊:
- 協定類型:http/htts
- 請求URL/IP:如:網址:https://www.baidu.com/;ip:127.0.0.1
- 端口:http預設端口:80,https預設端口:443或自定義端口
- 請求方式:如post/get/put/delete
- 表頭資訊:如内容類型Content-Type:application/json
- 請求參數:注意參數的傳參類型如json;參數的屬性如名稱、類型、是否必填,參數的個數;
- 響應結果:注意輸出内容的類型如json
三、什麼項目适合做接口自動化測試
- 任務需求明确,不會頻繁變動
- 項目周期較長,回歸測試頻繁(>=5次),開展自動化确實能提升測試效率及品質
- 産出的效益高于投入
- 測試預留的時間比較充裕
四、接口自動化關鍵點
- 開發測試腳本需充分考慮腳本的複用性
- 業務與資料分離
五 什麼時候可以做接口自動化
- 需求評審完畢,接口需求明确穩定
-
版本更新項目釋出之前的全流程回歸測試
六、與開發同步進行接口用例腳本開發
軟體開發未完成,接口還無法調試,測試如果需要同步開發接口,需根據接口文檔規範,利用MOCK SERVER等接口模拟工具模拟接口,進而進行接口自動化用例調試開發
七、接口自動化測試的流程
業務流程
- 評估投入與收益比,是否需要進行接口自動化
- 根據項目組成員的能力及項目屬性,選取适當的自動化工具或開發語言
- 分析業務,在功能測試用例提取主業務場景
- 先開發一個主業務場景腳本,根據需要補充其他業務場景
開發流程
- 提取腳本可重複項,封裝簡化腳本,利用公共類或公共函數等方法,提高腳本的使用率、可讀性及可維護性
- 提取腳本中可變的參數,修改成變量
- 利用csv、Excel、ini、資料庫、yaml等參數化資料資訊,使業務與資料分離,實作資料驅動測試
- 引入日志,出現問題能迅速定位
- 添加斷言并生成可視化報告
- 利用Jenkins持續內建工具,實作自動打包,按時釋出并執行,生成結果郵件發送給項目相關人
原文連結:https://blog.csdn.net/yiwenrong/article/details/101675497
優秀不夠,你是否無可替代
軟體測試交流QQ群:721256703,期待你的加入!!
歡迎關注我的微信公衆号:軟體測試君