一、設計思路
1、一個好的框架,必須要可讀性強,所以目錄規划尤為重要;
2、公共的方法提取出來,提高復用性;
3、可變的環境等參數,提取出來放到配置文件中,這樣,每次只需要更改配置文件中的值;
4、為了追蹤錯誤,需要必要的日志記錄,日志寫入文件中;
5、請求類型基本上都是get、post,所以,可以封裝方法,不用每個用例寫一個請求;
6、測試數據要分離,不能混在測試請求里面,通過測試數據驅動的方式來實現,excle存測試數據;
7、測試報告是測試結果的體現,必須生成;
8、自動化基本上都是基於常用的業務流程,所以過程中會有數據的依賴,需要提高中間變量的復用率;
9、配置數據、業務數據初始化,sql操作;
二、重點和難點
1、關聯:公共的變量,保存在一個類的單例字典變量中,excel中對應字段要標識這個請求是否有依賴或者被依賴的字段;
2、測試數據分離:ddt + excel
3、數據初始化:
如果是配置數據,可以提前把sql備份好,或者僅配置數據的庫備份好,每次運行自動化測試框架的時候,先初始化配置數據;
如果是業務數據:如果是前面接口返回的,那么通過關聯獲取即可;如果要考慮數據唯一性等,那么需要對數據庫中已有的相同唯一字段數據做處理,比如你要新增一個用戶,需要先把數據庫中這個同名用戶的數據刪除,否則會提示數據已經存在;
三、接口腳本規划
可以按接口來,對每個接口,設計測試用例,但是這脫離了業務。
除了驗證接口功能,更重要的是要驗證業務,所以,最好是按業務流程來,把這個流程中涉及的接口數據,按順序寫在excel中;
四、接口自動化的需求
1.一套用例可以測試多套環境 get
2.可以被jenkins調度執行 get
3.擁有測試報告 get
4.接口中某些字段值在每次請求中不重復
5.可以多接口關聯測試
針對這個需求,實現的主要思路是,可以在一條Pytest用例中,拿到所有接口的請求和響應參數。
這里利用了pytest中fixture,將每個接口的http請求方法封裝成fixture,后續傳遞給pytest用例使用。同理實現了 加載用例數據的Fixture
6.構造的表數據可以和接口字段數據關聯
7.pytest用例和實際用例數據要分離,方便維護 get
8.針對多樣的響應內容,具備多樣的斷言方式。