您好,登錄后才能下訂單哦!
思想這東西任何時候也不會是固定的,縱使框架大致一樣,也不盡相同。關鍵還得是看業務和具體需求。python接口自動化測試框架,軟件:IDE開發工具必選+工具類如下:
1、主要框架有:requests庫、unittest單元測試框架、HTMLrunner生成測試報告工具類、DDT數據驅動;另外pymysql、configparser、email、openpyxl等等其他工具類
2、一般思想,即一步一個腳印:
- 首先腳本化處理http請求--requests
- 將同類型測試腳本封裝,每個接口封裝成一個接口類
- 利用單元測試工具unittest,創建測試集suite,loader加載測試用例,測試方法命名必須test開頭
- 最后html生成測試報告,是否需要發送郵件等在另行擴展
3、根據上面的步驟分析,基本確定接口測試結構框架
4、直接上源碼 ,應該可能還有優化的空間,希望讀者能夠給點提示,共同進步~
'''
Created on 2019年10月10日
@author: qguan
'''
import requests
from utils.HandleLogging import log as logging
class HandleRequests(object):
'''
封裝一個公共http請求工具類
'''
def __init__(self):
'''
構造方法
'''
self.logger = logging
self.session = requests.Session()
def __call__(self, method, url, data=None, is_json=False, **kwargs):
'''
封裝一個可以被直接調用的方法
:param method: 請求方法
:param url: 請求地址
:param data: 請求參數
:param is_json: 是否json格式
:param kwargs: 占位,可自定義headers
:return: 返回一個請求結果
''' 鄭州人流醫院哪家好 http://mobile.zyyyzz.com/
# 請求方法的參數轉成小寫,也可以是大寫upper()
method = method.lower()
# 判斷請求參數是否是str類型的json格式
if isinstance(data, str):
try:
data = json.loads(data)
except Exception as e:
self.logger.info("str字符串json數據處理異常:{}".format(e))
if len(data) > 0:
data = eval(data)
# 請求方法
if method == 'get':
res = self.session.request(method=method, url=url, params=data, **kwargs)
elif method == 'post':
if is_json: # 如果是json格式的請求參數,是用json
res = self.session.request(method=method, url=url, json=data, **kwargs)
else:
res = self.session.request(method=method, url=url, data=data, **kwargs)
else:
self.logger.info("[{}]該請求方法暫不支持。".format(method))
# session需要關閉資源
self.session.close()
return res.text
if __name__ == '__main__':
res=HandleRequests()
url='http://www.baidu.com'
print(res("get", url))
5、以上講了接口自動化測試框架的結構分層及封裝了requests作為http請求工具類
6、unittest單元測試框架還需要單獨的來講其使用方法,如:創建測試套件、加載測試用例、執行測試、結果回寫、生成報告、發送郵件通知等等框架說具備的功能。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。