pytest入门 -8 参数化、YAML介绍

2022-02-23 16:45:47 浏览数 (1)

1、@pytest.mark.parametrize()基本用法

@pytest.mark.parametrize(args_name, args_value) args_name:参数名,用于将参数值传递给函数/方法 args_value:参数值(列表、元组、字典列表、字典元组)有多少值用例就会执行多少次。当参数值为字典等其他非字符串类型时,需要转换成字符串类型。

最基本的用法:

例1

执行用例:

例2:列表中含字典

执行结果:

例3:多参数

执行结果:

2、yaml格式测试用例读写

大家应该记得,fixture有一个params参数,可以进行用例传参,但是fixture更倾向于前后置操作,而yaml更多用于实现参数化

yaml是一种数据格式,扩展名可以是.yaml.yml,支持#注释,通过缩进表示层级,且区分大小写。

用途:

1、做配置文件;2、编写自动化测试用例

数据组成

1、字典,即Key-Value键值对【注意冒号后面要加空格】

2、列表,使用-表示

使用前确认你已经安装了PyYAML

例如:

我们先在user_manage文件夹新建get_token.yaml文件,然后在common文件夹新建yaml_util.py文件

get_token.yaml文件内容:

yaml_util.py文件内容

【说明】

我们在做持续集成的时候,目录是不能写死的,不然一旦项目位置发生改动,代码就会集体报错。所以我先写的read_yaml方法,打开文件时需要穿路径,然后我在上面写了个获取项目根目录的方法,因为当前文件已经知道是在common目录下,所以我调用split方法,取第一个值,这样获得的就是根目录了。然后具体路径写上去的。读取的方法就是yaml.load(),后面Loader表示全部加载。最后打印了一下方法执行结果。

执行结果:

我们再把get_token.yaml文件内容改为:

执行结果:

0 人点赞