这篇“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怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。