pytest传参的两种方式

#test_param.py

import pytest


class TestParam:
    '''
    pytest参数化
        1. 在测试用例上加注解@pytest.mark.parametrize("loginame,password",[(值1,值2),(值1,值2)])
        2. fixture传参。
         1)在测试用例上加注解@pytest.mark.parametrize("login_data",data2,indirect=True)
    login_data 是fixture函数
    @pytest.fixture()
    def login_data(request):
        return request.param
    测试用例取数据时用字典的方式取
        2)测试用例不用写注解,定义fixture函数时,fixture注解中传入参数 @pytest.fixture(params=data3)
    '''


    data = [("aaa","e10adc3949ba59abbe56e057f20f883e"),("aaaa","bbb")]
    @pytest.mark.parametrize("loginame,password",data)
    @pytest.mark.skip
    def test_login(self,loginame,password):
        print("用户名密码",loginame,1,password)
        print("kkk")




    @pytest.fixture()
    def login_data(request):
        return request.param

    data2 = [{"loginame":"aaa","password":"e10adc3949ba59abbe56e057f20f883e"}
             ,{"loginame":"","password":"1"}]
    @pytest.mark.parametrize("login_data",data2,indirect=True)
    @pytest.mark.skip
    def test_login2(self,login_data):
        print(login_data,type(login_data))
        print("用户名密码", login_data.get("loginame"), 1, login_data.get("password"))




    data3 = [{"loginame": "aaa", "password": "e10adc3949ba59abbe56e057f20f883e"}
        , {"loginame": "", "password": "1"}]
    @pytest.fixture(params=data3)
    def login_data3(self,request):
        print(request)
        return request.param

    def test_login3(self,login_data3):
        print(login_data3)
        pass

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值