首次書寫博客,記錄下寫的自動化接口框架,框架比較簡單,哈哈哈,算是記錄下歷程把!~~~
一、本次框架由python3.6 書寫
1、准備代碼環境,下載python3.6 下載地址:https://www.python.org/downloads
2、下載pycharm 軟件。
二、開始創建python接口自動化框架:
1、這是我創建的框架中的各個文件夾,分別有config 配置文件夾、fengzhuang 將接口用get post 兩種傳輸方式進行封裝並自動來區分執行。
2、logfile 用來存放測試用例執行后 ,log日志的保存。
3、public_common 用來存放一些公共的方法,比如斷言、日志、獲取excel表格中的用例。
4、result 用來存放運行測試用例后,生成的html報告。
5、test_case 用來存放測試用例代碼。
6、test_case_data用來存放測試的excel測試用例。
7、最重要的腳本運行的入口。
三、文件夾代碼開始填充:
1、config文件夾中創建Config_file.py 文件。應為我Config_file文件中只書寫了一個失敗重試的次數限制,就不截圖顯示了,哈哈 自己寫下就好
2、logs文件夾中創建logtest文件夾(logtest的意思是曾經寫了一個log文件 感覺不太好,又從新寫了一個以test命名來進行實驗的一直也就沒改,哈哈)
2.1、啊
先創建一個log代碼,來進行log的獲取與存儲。當沒有log文件儲存的文件夾logfile是會自動創建一個
3、log已經創建成功后,改開始進行接口GET POST 傳輸帶的參數進行一個代碼書寫。
3.1:get與post 分別創建了兩個函數因為post與get的代碼差不多 就不對post進行截圖了,此代碼是對接口進行請求並將返回的json數據進行轉換並對代碼進行容錯(容錯位置可能有問題,如果沒成功,可以下方評論聯系我!)
4、請求參數代碼創建完成后,對數據可以進行斷言來判斷返回的數據是否准確嘍:
4.1、我在上方先導入了一個log文件,一個圖沒截下來,再次說明下哈,
因為我寫的是PHP的接口返回,我的接口返回的數據主要判斷下接口里data list 中是否有數據 ,現在判斷的比較簡單,斷言的name主要是用在case運行時帶一個用例名稱好進行紀錄。
5、現在數據傳參、斷言下面 對case中返回的接口傳輸方式get、post 進行一個封裝,使其自動進行判斷 啦啦啦 !
5.1、上代碼
兩個圖截的有點low了 ,再次說一下哈,getJson這個函數是一個,只是將返回的進行一個轉換后在返回給調用的,也可以自己在進行優化的,這段代碼主要時對excel中的用例里面,在excel中單獨放了一個字段 fangshi 對這字段來進行一個檢查,如果時post則會進行判斷自動調用post方法 ge't相同方式。
6、好了到這里一些,來進行一項重要的,讀取excel中用例。
6.1、上代碼
先導入xlrd 模塊,先創建一個空list,因為我將case的數據都寫在了sheet1頁面中了,所以直接就寫死了,這里需要的可以自己寫一下,這段代碼里進行按照行進行了循環查找並將每一行傳喚成一個dict形式,並添加帶list中最后返回list。
7、獲取excel文件的方式也寫完了,開始寫case的框架來進行運行了
7.1、上代碼
這段代碼中有一個注釋掉的,時進行測試的修改錯誤的,可以忽略掉。這里主要我將excel文件夾的路徑直接寫到了cese中,因為在excel中導出的數據時list形式,我將其進行一個循環來拿出數據進行,畢竟excel中會有很多的case來進行測試。最后對代碼進行斷言,在斷言代碼中的name字段在這里用到,用來獲取excel中case中的名稱,在生成log時會有一個標識,好進行跟蹤。當然在這里我進行了錯誤錯誤代碼,運行失敗后,限制重試的次數,用到的就是Config文件中限制的次數。好了到這里接口自動化測試框架已經完成了很大的一部分了,下面就開始出現運行入口。(我這里用的UNITEST 框架,因為HTML報告沒有自己寫,用來一個省事的哈哈。以后會修改的。)
8、框架運行的入口:
8.1、上代碼:
這里為框架運行的入口代碼,里面有一個發郵件的功能,只是我還沒有寫成功,能發郵件 但是附件沒帶成功,sendmail文件我就沒在這次書寫上 ,后面的文章中,我會加上的。
四、以上為我寫的接口自動化框架的基本代碼,書寫的比較簡陋,可能規范也欠缺,哈哈 不過紀錄下歷程和新手學習下還算過的去
五、html測試報告樣式
5.1樣式比較簡單,哈哈 后續會優化的。
六、歡迎各位進行查看並指出錯誤。。