接口自動化測試架構規劃
1、編程語言的選型
2、編程工具的選型
3、自動化測試框架的選型
概念:一個架子 (數據驅動),有現成的一些代碼---提高效率
unittest---python解釋器自帶
unittest升級版-pytest--
unittest升級版-nose
httprunner框架
rf框架---關鍵字
4、報告可視化方案的選型
htmltestrunner---簡單的html報告
beautifulreport
allure
5、持續方案的選型:ci持續集成---jenkins
6、倉庫服務器的選型:github, gitlab, gitee 碼雲
7、測試管理工具的選型: 禪道 , jira
工程目錄的建立
包:代碼需要import導入
文件夾:可以使用路徑獲取
- common:公共模塊--包
· baseAPI--->給後面的其他業務層類繼承,如果子類有特殊需求,就重寫父類方法,沒有則無需重寫
· 發送方法: 增刪改查4種方法 - libs:基本業務層的代碼庫包(繼承common裏面的BaseAPI)(業務相關)
· 登錄
· 訂單管理 - configs 配置包---考慮課維護性
· host :切換測試環境
· 接口url 玻璃--做配置 - data 數據/用例excle測試用例 文件夾--(yaml格式文件)
- testcase 測試用例代碼包
- outFiles
· logs : 日誌文件夾
·report 報告
·screenShot -
utils(tools) 工具包
封裝baseAPI
- 封裝思路:
1、爲所有的業務模塊提供基本的接口操作:增刪改查+發送接口
2、日誌,截圖都可以在基類中封裝
3、斷言方法 - 發送公共請求方法:
def request_send(self,method,url):
· 實際調用時,發送方法都需要傳遞兩個參數
· 每一個接口的數據都不一樣
· 反饋:很麻煩
優化:
· 思路:代碼與配置分離
· 實施:method url 可以放到一個配置文件中去--apiPathConfig.yml
· 難點:代碼如何識別對應模塊、對應接口、接應參數
· 場景分類:
常規風格的接口格式:
·方法舉例:增加數據接口:post,修改也是post
·url舉例 : 增加接口 /sql 修改 /sq_admin/{id}
import requests
from utils.handel_yaml import get_yaml_data
class BaseAPI:
def __init__(self):
# 獲取對應模塊的接口信息
self.data = get_yaml_data('../configs/apiPathConfig.yam')
#----發送的公共方法-----
def request_send(self,method,url):
演示案例:
import inspect
def send():
# inspect.stack()[1][3] 獲取調用者的函數名字
print(f---'{inspect.stack()[1][3]}調用了send()方法--')
def login():
print('----函數login開始執行了---')
send()
login()
執行結果: