python接口自動化(一)--需求分析

前言:

隨着產品的快速迭代,自動化測試幾乎已經成爲每個測試員都必須掌握的基本技能。大家都知道,產品在開發階段是不適合用自動化,但是當產品趨於穩定狀態,基本功能大體上不會改變的時候,自動化測試就會開始凸顯他的優勢。

這幾個月工作一直在做一個即時通訊的產品(web端,安卓、Ios),產品迭代的速度很快,一週更新2次。每次發佈版本,就要保證基本功能是正常的,也就是我們所說的迴歸測試,所以我決定要自己搭建一個接口自動化框架,來解決兩個我目前遇到的問題:

1)在開發提交新的接口前進行冒煙測試,以保證系統是能夠正常開展測試的

2)功能測試完成/bug迴歸完成後進行迴歸測試,保證bug修改完成後沒有引入新的問題

有了這個想法,就要開始行動啦,接下來會把這幾個月的學習和開發過程記錄下來,也算是自己的一個小實戰吧。

1.測試目的

隨着公司項目的不斷增大,接口的服務隨之增多,迴歸的任務量越來越大,需要對接口進行定時迴歸測試來保證系統的穩定性。

       1)在開發提交新的接口前進行冒煙測試,以保證系統是能夠正常開展測試的

       2)功能測試完成/bug迴歸完成後進行迴歸測試,保證bug修改完成後沒有引入新的問題

 

2.測試方法

目前我們的接口都是使用的http協議,其測試的基本原理是模擬前端(客戶端)向服務器發送數據,得到相應的響應數據,從而判斷接口是否可以正常的進行數據交換。

根據開發人員提供的接口訪問地址、入參格式、請求格式,進行接口請求數據拼接,並查看返回結果及返回報文、響應時間,檢查返回Json內容是否符合接口定義規範,是否符合預期的返回結果。

3.測試框架實現過程

第一階段:

1)基於python的unittest框架,完成單一接口的請求,並封裝成類

2)添加異常處理

第二階段:實現數據與代碼的分離

1)測試用例設計:具體的測試思路在第四部分會提到

2)測試數據放在excel裏面,利用openpyxl去讀數據

3)將讀取出來的測試數據用什麼類型去存儲?-字典

4)測試數據參數化?-ddt

5)寫回實際結果和測試結果

第三階段:

1)實現用例的可配置

2)日誌設計,讓每一步操作都有跡可循

3)生成測試報告-HTMLReport

4)實現持續集成- jenkins

框架結構圖如下:

4.測試思路

首先根據接口文檔,瞭解清楚被測接口對應的、入參、出參及返回數據的Json 結構規範,根據測試場景進行測試。

1)理解接口參數,熟悉接口參數的輸入要求、輸入值範圍、必填項等;

2)理解接口輸出,熟悉返回json的結構構成、返回值類別、返回值範圍、返回data的不同類型等。

3)理解接口的邏輯、接口的業務關聯,熟悉技術方案中的接口相互關聯、依賴的關係,接口與接口之間的數據傳遞等。

4)尋找測試點,根據輸入(參數名、取值範圍)、輸出(參數名、返回值範圍)、關聯關係,進行測試點分析。

4.1 正常場景測試

嚴格根據接口文檔的定義,提供正確的參數名和參數,測試接口是否正常

4.2 異常場景測試

1)長度限制:如註冊時,輸入少於或大於11位的手機號

2)必填項判斷:必要參數爲空,如登錄時,不輸入密碼

3)數據類型判斷:如要求傳入int類型,結果傳入string類型

4)數據正確性的判斷:如登錄時,輸入錯誤的手機號碼

5)重複值判斷:如註冊時,輸入一個已經存在的用戶名

4.3 邏輯場景測試

4.4斷言檢查

檢查接口請求返回的結果是否符合預期的結果:如狀態碼、數據庫判斷、數據值等等。

具體的斷言檢查需要根據業務場景來設定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章