从0开始python学习-38.pytest的parametrize结合yaml实现数据驱动

目录

[1. 数据驱动](#1. 数据驱动)

[2. 定制化allure报告](#2. 定制化allure报告)


1. 数据驱动

yaml文件中写入

python 复制代码
-
  data: 1
  ces: 2

- test:
  data: 3

数据驱动:@pytest.mark.parametrize("参数名","参数值(可以是list或tuple)")

注意:这里参数值只能是列表或者元组,由于yaml的特性,最好写成列表,如果写成了字典则无法读取

python 复制代码
@pytest.mark.parametrize("caseinfo",YamlUtil("./common/test_api.yaml").read_yaml())
def test_b(self,caseinfo):
    print(caseinfo)
    print(caseinfo["data"])

打印结果:

注意:这里有多个case的情况,每个case下的key值最好一致

2. 定制化allure报告

python 复制代码
-
  title: 用例1

- test:
  title: 用例2

定制化title,定制其他的同理即可

python 复制代码
@allure.epic('测试报告')
@allure.feature('测试模块')
@pytest.mark.parametrize("caseinfo",YamlUtil("./common/test_api.yaml").read_yaml())
def test_b(self,caseinfo):
    allure.dynamic.title(caseinfo["title"])
    print(caseinfo["data"])

allure报告:

相关推荐
夏天想19 分钟前
人类将从“执行者“变为“总导演”,学习Ai知识
人工智能·学习
yangshicong21 分钟前
第11章:结构化输出与数据提取 —— 让 AI 直接返回你想要的数据格式
数据库·人工智能·redis·python·langchain·ai编程
言之。34 分钟前
【Python】免费的中文 AI 配音方案
开发语言·人工智能·python
Warson_L36 分钟前
python dict key详解
python
天天进步20151 小时前
Python全栈项目:从零手操一个高性能 API 网关
开发语言·python
晓梦林1 小时前
Baji1靶场学习笔记
笔记·学习
Java面试题总结1 小时前
java高频面试题(2026最新)
java·开发语言·jvm·数据库·spring·缓存
希冀1231 小时前
【CSS学习第十一篇】
前端·css·学习
安生生申2 小时前
使用pygame实现2048
开发语言·python·pygame
魔法阵维护师2 小时前
从零开发游戏需要学习的c#模块,第十六章(安装 MonoGame 并创建第一个窗口)
学习·游戏·c#·monogame