从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报告:

相关推荐
yejqvow12几秒前
Python测试中如何控制顺序_使用pytest-ordering自定义执行流
jvm·数据库·python
栗少1 分钟前
Python 入门教程(面向有 Java 经验的开发者)
java·开发语言·python
草莓熊Lotso1 分钟前
Linux C++ 高并发编程:从原理到手撕,线程池全链路深度解析
linux·运维·服务器·开发语言·数据库·c++·mysql
峥嵘life2 分钟前
Android 切换用户后无法获取 MAC 地址分析解决
android·python·macos
小王师傅663 分钟前
【Java结构化梳理】泛型-上
java·开发语言
m0_613856295 分钟前
mysql如何使用IF函数_mysql简单二元逻辑转换
jvm·数据库·python
爱喝热水的呀哈喽6 分钟前
5步创建一个有不同numpy scipy版本的python环境
python·numpy·scipy
wuxuanok11 分钟前
Maven 编译报错:java.lang.NoSuchFieldError: JCImport 问题总结
java·开发语言·maven
pele13 分钟前
如何在 Go 项目中安全、高效地共享 MySQL 数据库连接
jvm·数据库·python