您好,登錄后才能下訂單哦!
這篇“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。