【无标题】@pytest.mark.parametrize+yaml数据驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

方法:@pytest.mark.parametrize(args_name,args_value)
name:参数名称
value:参数值
方法一:单个参数@pytest.mark.parametrize(‘caseinfo’,[‘张三’,‘李四’])
方法二:多个参数 @pytest.mark.parametrize(‘name,age’, [[‘name’,‘张三’],[‘age’,‘24’]])
1)首先建立一个yaml 文件test_medicines.yaml
尽量以模块名,或者接口名称来命名,这样更好找
【无标题】@pytest.mark.parametrize+yaml数据驱动_第1张图片


插入数据
【无标题】@pytest.mark.parametrize+yaml数据驱动_第2张图片


这样一个yaml文件就建成了,而且里面还有数据
2)读取yaml文件
代码如下(示例):

import yaml
import json


def read_yaml():
    with open("../data/data_yaml2/data_yaml3",encoding="utf8")as f:
        value = yaml.safe_load(stream=f)
        data = list(value.values())
        return data

    print(value)
    print(data)
read_yaml()

可以先使用read_yaml()函数执行一遍,这样就打印出了yaml文件的内容
【无标题】@pytest.mark.parametrize+yaml数据驱动_第3张图片
3)刚刚我们已经取到了yaml文件的值了,现在我们就要用搭配@pytest.mark.parametrize
来使用了

import  pytest
from common.request_util import RequestUtil
from utils.read_data import read_yaml
@pytest.mark.parametrize("caseinfo",read_yaml())

def test_medicines(login,caseinfo):
    url = caseinfo['url']
    data = caseinfo['data1']
    method =caseinfo['method']
    r = RequestUtil().all_send_request(method=method,url=url, json=data)
    print(r.json())
if __name__=="__main__":
    pytest.main(['tase.py','-s'])

结果
【无标题】@pytest.mark.parametrize+yaml数据驱动_第4张图片
如果需要执行多条用例,则在yaml文件加入新的数据【无标题】@pytest.mark.parametrize+yaml数据驱动_第5张图片
让我们执行看看
【无标题】@pytest.mark.parametrize+yaml数据驱动_第6张图片

ok 这样就好了

你可能感兴趣的:(pytest,python)