框架簡介
選用python 3語言钝的,使用庫requests封锉、unittest、HTMLTestRunner實現(xiàn)锐极。測試用到的接口參數(shù)的數(shù)據是寫在代碼中的笙僚,沒有用EXCEL(嘗試過,當有幾十個參數(shù)時看著太頭疼)灵再。這是根據工作中實際的接口測試項目肋层,自己摸索一段時間后寫的,不通用翎迁,比較簡單栋猖。
API接口
項目實現(xiàn)的接口是提供給第三方調用的。介紹一下API接口的調用鸳兽,申請到app_key和 app_secret,請求地址為:服務器地址/業(yè)務地址罕拂,公共必填參數(shù)(隨機數(shù)nonce除外揍异,附在請求的body內)附在URL地址上請求全陨。
sign是對請求參數(shù)簽名,簽名方法如下:
1. 指定一種簽名方式:encry_method=md5,sha256,sha1,sha3_256
2.計算nonce: md5(ts)
3. 獲取到app_key,app_secret,ts,按如下規(guī)則:sign = $encry_method("nonce"+nonce+"ts"+ts+"app_key"+app_key+"app_secret"+secret ) 即生成字符串的哈希值
接口參數(shù)用form表單形式提交
二次封裝requests
將發(fā)送請求中不變的部分如簽名衷掷,公共參數(shù)等封裝為類configHttp里面通用的部分辱姨,變化的地方就在設置請求URL和請求參數(shù)。
初始化類戚嗅,從常量文件const_sign中獲取常量
創(chuàng)建了defaultData這個類來存每個接口的默認參數(shù)雨涛,參數(shù)是用的字典類型表示,參數(shù)名稱是key懦胞,value是存的列表:[參數(shù)取值替久,參數(shù)是否必填,參數(shù)是否是文件(F表示文件躏尉,P表示非文件)]
類configHttp的set_data函數(shù)將文件參數(shù)和非文件參數(shù)區(qū)分了出來
類configHttp的post函數(shù)處理了文件參數(shù)(包括一個參數(shù)有多個文件路徑蚯根,用列表存),從路徑中讀取文件內容后關閉文件
創(chuàng)建測試用例
單接口測試:一個接口創(chuàng)建一個類胀糜,取默認參數(shù)颅拦,有變化的參數(shù)值更新后傳值發(fā)送。
多接口業(yè)務聯(lián)調:將能通用的業(yè)務抽取出來封裝后使用教藻。
同一參數(shù)不同取值或校驗必填參數(shù)距帅,創(chuàng)建子用例subTest:
日志
WriteLog是封裝的日志模塊,有存儲在本地的括堤,也有輸出到控制臺顯示的碌秸,測試報告是取的輸出到控制臺顯示的內容。
測試報告
網上找的修改支持python3的HTMLTestRunner庫痊臭,將該py文件放到python安裝目錄的Lib下使用哮肚。
結束語
在寫這個代碼前,網上搜索了一番广匙,想找到修改一番可以直接拿來用的允趟,比如HttpRunner 這一款面向HTTP(S) 協(xié)議的通用測試框架。嘗試了后沒找到切入點鸦致,就嘗試自己先簡單寫寫潮剪,看看會遇到哪些問題,之后再去學習研究這個通用測試框架分唾。就好比一個武學初級菜鳥給他一把神器也發(fā)揮不出它的威力抗碰。