這篇“pytest自動化測試數據驅動yaml/excel/csv/json怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“pytest自動化測試數據驅動yaml/excel/csv/json怎么使用”文章吧。
數據的改變從而驅動自動化測試用例的執行,最終引起測試結果的改變。簡單說就是參數化的應用。
測試驅動在自動化測試中的應用場景:
測試步驟的數據驅動;
測試數據的數據驅動;
配置的數據驅動;
實現讀yaml文件,先創建env.yml文件配置測試數據
data目錄:存放yaml文件
- dev: 127.0.0.1 #dev: 127.0.0.2 #prod: 127.0.0.3
testcase目錄:存放測試用例文件
import pytest
import yaml
class TestYaml:
@pytest.mark.parametrize("env", yaml.safe_load(open("./env.yml")))
def test_yaml(self, env):
if "test" in env:
print("這是測試環境")
# print(env)
print("測試環境的ip是:", env["test"])
elif "dev" in env:
print("這是開發文件")
print("開發環境的ip是:", env["dev"])
# print(env)結果示例:

常用的讀取方式有:xlrd、xlwings、pandas、openpyxl
以讀excel文件,實現A+B=C并斷言為例~
data目錄:存放excel數據文件

func目錄:存放被測函數文件
def my_add(x, y): result = x + y return result
testcase目錄:存放測試用例文件
import openpyxl
import pytest
from test_pytest.read_excel.func.operation import my_add
def test_get_excel():
"""
解析excel數據
:return: [[1,1,2],[3,6,9],[100,200,300]]
"""
book = openpyxl.load_workbook('../data/param.xlsx')
sheet = book.active
cells = sheet["A1":"C3"]
print(cells)
values = []
for row in sheet:
data = []
for cell in row:
data.append(cell.value)
values.append(data)
print(values)
return values
class TestWithExcel:
@pytest.mark.parametrize('x,y,expected', test_get_excel())
def test_add(self, x, y, expected):
assert my_add(int(x), int(y)) == int(expected)csv:逗號文件,以逗號分隔的string文件
內置函數open()
內置模塊csv
方法:csv.reader(iterable)
參數:iterable,文件或列表對象
返回:迭代器,遍歷迭代器,每次會返回一行數據
以讀csv文件,實現A+B=C并斷言為例~
data目錄:存放csv數據文件

func目錄:存放被測函數文件
def my_add(x, y): result = x + y return result
testcase目錄:存放測試用例文件
import csv
import pytest
from test_pytest.read_csv.func.operation import my_add
def test_get_csv():
"""
解析csv文件
:return:
"""
with open('../data/params.csv') as file:
raw = csv.reader(file)
data = []
for line in raw:
data.append(line)
print(data)
return data
class TestWithCsv:
@pytest.mark.parametrize('x,y,expected', test_get_csv())
def test_add(self, x, y, expected):
assert my_add(int(x), int(y)) == int(expected)json:js對象,是一種輕量級的數據交換格式。
對象{"key":value}
數組[value1,value2...]
1.pycharm
2.txt記事本
內置函數open()
內置庫json
方法 json.loads() json.dumps()
以讀json文件,實現A+B=C并斷言為例~
data目錄:存放json數據文件

func目錄:存放被測函數文件
def my_add(x, y): result = x + y return result
testcase目錄:存放測試用例文件
import json
import pytest
from test_pytest.read_json.func.operation import my_add
def test_get_json():
"""
解析json數據
:return: [[1,1,2],[3,6,9],[100,200,300]]
"""
with open('../data/params.json', 'r') as file:
data = json.loads(file.read())
print(list(data.values()))
return list(data.values())
class TestWithJson:
@pytest.mark.parametrize('x,y,expected', test_get_json())
def test_add(self, x, y, expected):
assert my_add(int(x), int(y)) == int(expected)以上就是關于“pytest自動化測試數據驅動yaml/excel/csv/json怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。