pytest学习实践-day28: fixture学习09:数据驱动和参数传递-02:使用fixture实现参数化.py

文章描述了如何使用pytest框架编写测试用例,特别是针对登录功能的测试,包括正确登录、空账号密码、账号不存在和密码错误等场景,通过fixture和参数化数据来覆盖多种测试情况。
摘要由CSDN通过智能技术生成
import pytest


@pytest.fixture()
def data_login():
    login_data = [{'case': 'case-001:正确账号密码登录',
                   'username': 'user01',
                   'pwd': 'P@ss1212'},
                  {'case': 'case-002:账号为空,密码为空登录',
                   'username': '',
                   'pwd': ''},
                  {'case': 'case-003:账号为空,密码非空',
                   'username': '',
                   'pwd': 'P@ss1212'},
                  {'case': 'case-004:账号存在,密码为空',
                   'username': '',
                   'pwd': ''},
                  {'case': 'case-005:账号不存存在',
                   'username': 'user00',
                   'pwd': 'P@ss1212'},
                  ]
    return login_data


def test_login(data_login):
    for a1 in data_login:
        case = a1['case']
        user_name = a1['username']
        pwd = a1['pwd']
        print(case, user_name, pwd)


test_data02 = [
    {
        'case': '登入成功',
        'usr': 'admin',  # 正常登入
        'psw': '123456'
    },
    {
        'case': '账号不存在',
        'usr': 'admin1',  # 账号不存在
        'psw': '123456'
    },
    {
        'case': '密码错误',
        'usr': 'admin',  # 密码错误
        'psw': '12345'
    },
    {
        'case': '账号或密码为空',
        'usr': '',  # 账号或密码为空
        'psw': ''
    },
]


@pytest.fixture(params=test_data02, ids=[data.get('case') for data in test_data02])  # 给params传入参数化数据
def param_data(request):
    return request.param  # 返回request对象中的param,这里存放的就是参数化数据


def test_login1(param_data):
    usr = param_data['usr']
    psw = param_data['psw']
    print(f'usr: {usr} , psw: {psw}')
    # 调用login接口,传入usr和psw,代码省略


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值