程式設計測試相關整理(初)
什麼是介面測試
介面測試是測試系統元件間介面的一種測試.
1.作用
主要用於檢測外部系統與系統之間以及內部各個系統之間的互動點,測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統的相互邏輯依賴關係等.
2.有哪些介面
(1)Webservice介面
走soap協議通過http傳輸,請求報文和返回報文都是xml格式,測試通過工具soapUI進行測試.
(2) HTTP api介面
走http傳輸協議,通過路徑來區分呼叫的方法,最常用的是get和post請求.請求報文都是 key-value字典形式的,返回報文一般都是json串.
3.介面測試的目的
(1)通過測試,暴露問題
(2) 保證系統的正確和穩定性(以持續整合為手段)
(3)提高測試效率,降低產品維護成本
4.如何進行介面測試
可以從以下幾個角度進行驗證:
- 輸入引數分析
- 介面邏輯分析
- 輸出分析
1) 引數詳解
-
引數型別(1) ----數值型(int,float,double等)
運用等價類,邊界值,特殊數值(-1,0),數值型別最大值範圍進行數值錄入驗證.
-
引數型別(2) ----字串型別
運用等價類,邊界值,特殊字元,敏感字元,超長字元,空等進行錄入驗證.
-
引數型別(3) ----日期型別
輸入正常日期,非法日期,輸入非日期格式字元
-
引數型別(4) ----陣列或連結串列
運用等價類,邊界值,合法成員,非法成員,重複id等輸入驗證
-
引數型別(5) ----引數安全性輸入驗證
sql注入,XSS攻擊,越權訪問等
驗證方法
2)介面業務邏輯分析詳解
-
約束條件分析
比如: 已完成的問題不能修改 -
操作物件分析
比如: 無許可權的使用者不能越界操作等 -
狀態轉換分析
比如: 已通過狀態的問題不能回退到待整改問題 -
時序分析
比如:
1.使用者必須有效登入才能上傳資料
2.新增問題上傳,必須先 問題主記錄上傳,才能上傳問題抄送人記錄,不能跳過主記錄就能上傳從表記錄(具體業務邏輯)
概括來說: 就是通過分析,得出需要驗證的場景,驗證介面邏輯處理是否正確
3)輸出結果分析詳解
介面處理正確的結果可能只有一個,但是錯誤異常返回結果有很多情況,很多值.
如果知道返回結果有很多種,就可以針對不同結果分別進行驗證.
5.介面測試的實現過程
-
手動測試
(1)拿到介面定義文件
(2)編寫介面測試用例
(3)準備介面測試
(4) 執行測試
-
自動化測試
(1)拿到介面定義文件
(2)編寫介面場景用例
(3)根據用例編寫指令碼
(4) 準備測試資料
(5) 持續整合測試(jenkins)
6.介面測試的工具
-
手工測試
介入時間: 介面手工測試不依賴於介面,介面開發完便可以測試.
使用工具:手工測試一般使用fiddler,postman(谷歌瀏覽器工具),RESTClient,jmeter等工具測試.
ps:推薦使用postman工具,使用簡單,有各種記錄留存,方便回溯,個性化設定(如各種url地址,引數等)
-
自動化測試
介入時間:自動化測試一般是等介面穩定以後,對介面主流程場景進行指令碼化,現在做法是在每個迭代完成以後進行介面指令碼補充.
使用工具: jmeter,postman,RFS+ReqyestsLibrary,Python+unitest+Request測試.
ps:以上工具各有優劣,meter,postman斷言功能不夠強大,RFS框架安裝複雜,但封裝的類庫比較豐富,用例組織比較清晰. Python+unitest需要編寫指令碼程式碼,要有程式碼基礎,學習成本比較高.
關於在測試過程中用到的測試用例,請參考我的另一篇測試用例的文章,
ofollow,noindex"><<PHP測試用例概述及詳解>>
這裡可以詳細瞭解測試用例的一些知識點.
結尾
寫於11/22日質檢組測試帥哥-紅靈分享會