文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

pytest自动化测试数据驱动yaml/excel/csv/json怎么使用

2023-07-02 13:21

关注

这篇“pytest自动化测试数据驱动yaml/excel/csv/json怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“pytest自动化测试数据驱动yaml/excel/csv/json怎么使用”文章吧。

数据驱动

数据的改变从而驱动自动化测试用例的执行,最终引起测试结果的改变。简单说就是参数化的应用。

测试驱动在自动化测试中的应用场景:

1、pytest结合数据驱动-yaml

实现读yaml文件,先创建env.yml文件配置测试数据

工程目录结构:
-  dev: 127.0.0.1  #dev: 127.0.0.2  #prod: 127.0.0.3
import pytestimport yamlclass 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)

结果示例:

pytest自动化测试数据驱动yaml/excel/csv/json怎么使用

2、pytest结合数据驱动-excel

常用的读取方式有:xlrd、xlwings、pandas、openpyxl

以读excel文件,实现A+B=C并断言为例~

工程目录结构:

data目录:存放excel数据文件

pytest自动化测试数据驱动yaml/excel/csv/json怎么使用

def my_add(x, y):    result = x + y    return result
import openpyxlimport pytestfrom test_pytest.read_excel.func.operation import my_adddef 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 valuesclass 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数据:

以读csv文件,实现A+B=C并断言为例~

工程目录结构:

data目录:存放csv数据文件

pytest自动化测试数据驱动yaml/excel/csv/json怎么使用

def my_add(x, y):    result = x + y    return result
import csvimport pytestfrom test_pytest.read_csv.func.operation import my_adddef 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 dataclass 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结构:
查看json文件:
读取json文件:

以读json文件,实现A+B=C并断言为例~

工程目录结构:

data目录:存放json数据文件

pytest自动化测试数据驱动yaml/excel/csv/json怎么使用

def my_add(x, y):    result = x + y    return result
import jsonimport pytestfrom test_pytest.read_json.func.operation import my_adddef 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怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯