實際的自動化框架常需從CSV文件中讀取值,我們將利用Pytest的參數化功能,將其整合到自動化測試框架中。
1. 準備測試數據文件
測試數據可以存儲在各種文件格式中,在此以CSV文件為例,包含以下列:ID, Name, Course, City
import csvreturn data
from pathlib import Path
dataFile = 'data.csv' #定義資料檔案名稱
cfgFileDirectory = 'config' #定義存放資料檔案的目錄
BASE_DIR = Path(__file__).resolve().parent.parent #專案的根目錄路徑
DATA_FILE = BASE_DIR.joinpath(cfgFileDirectory).joinpath(dataFile) #組合出資料檔案的完整路徑
def get_data():
with open(DATA_FILE, 'r') as f: #開啟CSV檔案進行讀取
reader = csv.reader(f) #建立CSV讀取對象
next(reader) #跳過標題行
data = [tuple(row) for row in reader] #資料轉換為元組並存入列表
print(get_data())
4. 使用Pytest的參數化功能來將CSV文件中的數據傳遞給測試函式
import pytest
from Pytest_Topics.utils.util import get_data
#參數化測試,將get_data()傳回的每行數據傳遞給測試函式
@pytest.mark.parametrize("a, b, c, d", get_data())
def test_checkdata_from_file(a, b, c, d):
print(d)
沒有留言:
張貼留言