前言:前端
隨着產品的快速迭代,自動化測試幾乎已經成爲每一個測試員都必須掌握的基本技能。你們都知道,產品在開發階段是不適合用自動化,可是當產品趨於穩定狀態,基本功能大致上不會改變的時候,自動化測試就會開始凸顯他的優點。python
這幾個月工做一直在作一個即時通信的產品(web端,安卓、Ios),產品迭代的速度很快,一週更新2次。每次發佈版本,就要保證基本功能是正常的,也就是咱們所說的迴歸測試,因此我決定要本身搭建一個接口自動化框架,來解決兩個我目前遇到的問題:web
1)在開發提交新的接口前進行冒煙測試,以保證系統是可以正常開展測試的數據庫
2)功能測試完成/bug迴歸完成後進行迴歸測試,保證bug修改完成後沒有引入新的問題json
有了這個想法,就要開始行動啦,接下來會把這幾個月的學習和開發過程記錄下來,也算是本身的一個小實戰吧。服務器
隨着公司項目的不斷增大,接口的服務隨之增多,迴歸的任務量愈來愈大,須要對接口進行定時迴歸測試來保證系統的穩定性。框架
1)在開發提交新的接口前進行冒煙測試,以保證系統是可以正常開展測試的學習
2)功能測試完成/bug迴歸完成後進行迴歸測試,保證bug修改完成後沒有引入新的問題測試
目前咱們的接口都是使用的http協議,其測試的基本原理是模擬前端(客戶端)向服務器發送數據,獲得相應的響應數據,從而判斷接口是否能夠正常的進行數據交換。spa
根據開發人員提供的接口訪問地址、入參格式、請求格式,進行接口請求數據拼接,並查看返回結果及返回報文、響應時間,檢查返回Json內容是否符合接口定義規範,是否符合預期的返回結果。
第一階段:
1)基於python的unittest框架,完成單一接口的請求,並封裝成類
2)添加異常處理
第二階段:實現數據與代碼的分離
1)測試用例設計:具體的測試思路在第四部分會提到
2)測試數據放在excel裏面,利用openpyxl去讀數據
3)將讀取出來的測試數據用什麼類型去存儲?-字典
4)測試數據參數化?-ddt
5)寫回實際結果和測試結果
第三階段:
1)實現用例的可配置
2)日誌設計,讓每一步操做都有跡可循
3)生成測試報告-HTMLReport
4)實現持續集成- jenkins
框架結構圖以下:
首先根據接口文檔,瞭解清楚被測接口對應的、入參、出參及返回數據的Json 結構規範,根據測試場景進行測試。
1)理解接口參數,熟悉接口參數的輸入要求、輸入值範圍、必填項等;
2)理解接口輸出,熟悉返回json的結構構成、返回值類別、返回值範圍、返回data的不一樣類型等。
3)理解接口的邏輯、接口的業務關聯,熟悉技術方案中的接口相互關聯、依賴的關係,接口與接口之間的數據傳遞等。
4)尋找測試點,根據輸入(參數名、取值範圍)、輸出(參數名、返回值範圍)、關聯關係,進行測試點分析。
嚴格根據接口文檔的定義,提供正確的參數名和參數,測試接口是否正常
1)長度限制:如註冊時,輸入少於或大於11位的手機號
2)必填項判斷:必要參數爲空,如登陸時,不輸入密碼
3)數據類型判斷:如要求傳入int類型,結果傳入string類型
4)數據正確性的判斷:如登陸時,輸入錯誤的手機號碼
5)重複值判斷:如註冊時,輸入一個已經存在的用戶名
檢查接口請求返回的結果是否符合預期的結果:如狀態碼、數據庫判斷、數據值等等。
具體的斷言檢查須要根據業務場景來設定