pytest自动化测试数据驱动yaml/excel/csv/json
更新时间:2022年6月27日 15:32 点击:323 作者:吱吱菌啦啦
数据驱动
数据的改变从而驱动自动化测试用例的执行,最终引起测试结果的改变。简单说就是参数化的应用。
测试驱动在自动化测试中的应用场景:
- 测试步骤的数据驱动;
- 测试数据的数据驱动;
- 配置的数据驱动;
1、pytest结合数据驱动-yaml
实现读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)
结果示例:
2、pytest结合数据驱动-excel
常用的读取方式有: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)
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 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)
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 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的详细内容,更多关于pytest测试数据驱动yaml/excel/csv/json的资料请关注猪先飞其它相关文章!
原文出处:https://www.jianshu.com/p/dd11812b2ba6
相关文章
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
- 这篇文章主要介绍了c#读取excel方法,实例分析了C#读取excel文件的原理与相关技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Python导入数值型Excel数据并生成矩阵操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-09
- 下面小编就为大家带来一篇C# winform打开Excel文档的方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- C# 导出 Excel 的6种简单方法:数据表导出到 Excel,对象集合导出到 Excel,数据库导出到 Excel,微软网格控件导出到 Excel,数组导出到 Excel,CSV 导出到 Excel,你都会了吗?需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
C#实现Excel表数据导入Sql Server数据库中的方法
这篇文章主要介绍了C#实现Excel表数据导入Sql Server数据库中的方法,结合实例形式详细分析了C#读取Excel表数据及导入Sql Server数据库的具体操作步骤与相关操作技巧,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了C#实现将数据导出到word或者Excel中的方法,涉及C#操作word及Excel格式文件的方法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#使用Ado.Net更新和添加数据到Excel表格的方法,较为详细的分析了OLEDB的原理与使用技巧,可实现较为方便的操作Excel数据,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了C#使用Aspose.Cells创建和读取Excel文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了C#使用oledb导出数据到excel的方法,结合实例形式分析了C#操作oledb导出数据的相关技巧与注意事项,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#操作excel打印的示例,帮助大家利用c#打印表格,提高办公效率,感兴趣的朋友可以了解下...2020-12-08
- 在本篇文章里小编给大家分享了关于C#删除Excel中的图片的实例代码内容,有兴趣的朋友们参考学习下。...2020-06-25
- 本文介绍Aspose.Cells基础的用法,供大家参考。...2020-06-25
- 首先 你需要添加引用Microsoft Excel 11.0 Object Library...2020-06-25
- 这篇文章主要介绍了python3 循环读取excel文件并写入json操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-14
- 在.NET应用中,导出Excel是很常见的需求,导出Excel报表大致有以下三种方式:Office PIA,文件流和NPOI开源库,本文只介绍前两种方式...2020-06-25
- 今天小编就为大家分享一篇关于C#将Excel转成PDF的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-06-25
- 这篇文章主要介绍了python操作mysql、excel、pdf的示例,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-03-29
phpexcel导入xlsx文件报错xlsx is not recognised as an OLE file 怎么办
phpexcel是一款php读写excel的插件了,小编有一个这样的功能要来实现,但是在导入xlsx时发现xlsx is not recognised as an OLE file 了,但是导入xls是没有问题了,碰到这种...2016-11-25解决python pandas读取excel中多个不同sheet表格存在的问题
这篇文章主要介绍了解决python pandas读取excel中多个不同sheet表格存在的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-14