Python中pytest的数据驱动,pytest自动化测试实战
本文主要介绍一个pytest自动化测试数据驱动yaml/excel/csv/json的例子。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010数据驱动1、pytest结合数据驱动-yaml项目目录结构:2、pytest结合数据驱动-excel项目目录结构:3、pyetst结合数据驱动-csv读取csv数据:项目目录结构:4、pytest结合数据驱动-jsonjson结构:查看json文件:读取json文件:项目目录结构:
目录
数据的变化驱动自动化测试用例的执行,最终导致测试结果的变化。简单来说就是参数化的应用。
测试驱动在自动化测试中的应用场景;
数据驱动的测试步骤;数据驱动的测试数据;数据驱动的配置;
数据驱动
要读取yaml文件,首先创建env.yml文件来配置测试数据。
1、pytest结合数据驱动-yaml
数据目录:存储yaml文件-
127.0.0.1
#dev:
127.0.0.3
Testcase目录:存储测试用例文件导入pytest。
导入yaml
TestYaml:类
@ py test . mark . parameterize( env ,yaml.safe_load(open(。/env.yml ))
定义测试_yaml(自身,环境):
如果env:中的“测试”
打印(“这是测试环境”)
#打印(环境)
Print(测试环境的ip是:,env[test])
env:中的elif“dev”
打印(“这是开发文件”)
Print(开发环境的ip是:,env[dev])
#打印(环境)
结果示例:
工程目录结构:
常见的阅读方式有:xlrd、xlwings、pandas、openpyxl。
以读取excel文件,实现A B=C并断言为例~
2、pytest结合数据驱动-excel
数据目录:存储excel数据文件。
func目录:存放测试过的函数文件defmy _ add (x,y) 3360。
结果=x y
回送结果
Testcase目录:存储测试用例文件import openpyxl。
导入pytest
从test _ py test . read _ excel . func . operation导入my_add
def测试_获取_excel():
解析excel数据
:return: [[1,1,2]、[3,6,9]、[100,200,300]]
book=ope
npyxl.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)
3、pyetst结合数据驱动-csv
csv:逗号文件,以逗号分隔的string文件
读取csv数据:
- 内置函数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 csvimport 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)
4、pytest结合数据驱动-json
json:js对象,是一种轻量级的数据交换格式。
json结构:
- 对象{"key":value}
- 数组[value1,value2...]
查看json文件:
- 1.pycharm
- 2.txt记事本
读取json文件:
- 内置函数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 jsonimport 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的详细内容,更多关于pytest测试数据驱动yaml/excel/csv/json的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。