Pytest fixture 用法

1.@pytest.fixture( ):无参数的用法

1.第一种方式:-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
	@pytest.fixture( )
	def user( ):
	    name = 'mixintu'
	    password = '123456'
	    return name, password

	def test_user(user):
	    assert user[0] == "mixintu"
	    assert user[1] == "123456"
	    
2.第二种方式:-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
	@pytest.fixture( )
	def user( ):
	    name = 'mixintu'
	    return name
	
	
	@pytest.fixture( )
	def password( ):
	    password = '123456'
	    return password
	
	
	def test_user(user, password):
	    assert user == "mixintu"
	    assert password == "1234567"
3.第三种方式:-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
	@pytest.fixture( )
	def user( ):
	    name = 'mixintu'
	    return name
	
	
	@pytest.fixture( )
	def pw(user):
	    name = user
	    password = '123456'
	    return name, password
	
	
	def test_user(pw):
	    assert pw[0] == 'mixintu'
	    assert pw[1] == '1234567'
  


输出:

__________________________________ test_user __________________________________

	user = ('mixintu', '123456')
	
	    def test_user(user):
	        assert user[0] == "mixintu"
	>       assert user[1] == "1234567"
	E       AssertionError: assert '123456' == '1234567'
	E         - 123456
	E         + 1234567
	E         ?       +
	
	test_example.py:82: AssertionError
========================== 1 failed in 0.09 seconds ===========================

2.@pytest.fixture( ):有参数的用法

1.第一种方式:-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
	@pytest.fixture( )  # 添加fixture后,执行inty方法就是执行fun()方法
	def inty( ):
	    return "connect to hello world"
	
	
	class TestCase_01( ):
	    # inty参数名必须同fixture的inty方法名相同才能传递inty的值
	    def test_open_baidu(self, inty):
	        print("============{}".format(inty))

2.第二种方式:-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
	@pytest.fixture(params = [{'userID': '00001', 'username': 'jack'},
	                          {'userID': '00002', 'username': 'mike'}])
	def getdata(request):  # 这里的request是固定参数名
	    print("request.param======".format(request.param))
	    return request.param  # 这里的request.param也是固定的
	
	
	class TestCase_02( ):
	    def test_case1(self, getdata):
	        print("第1个用例输出:{}".format(getdata))
	
	    def test_case2(self, getdata):
	        print("第2个用例输出:{}".format(getdata))

3.第三种方式:-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
	class TestCase_03( ):
	    # parametrize:直接加测试数据
	    @pytest.mark.parametrize("params_A",
	                             [{'userID': '00001', 'username': 'jack'},
	                              {'userID': '00002', 'username': 'mike'}])
	    def test_case1(self, params_A):
	        print("第1个用例输出:{}".format(params_A))
	
	    @pytest.mark.parametrize("params_B",
	                             [{'userID': '00003', 'username': 'tina'},
	                              {'userID': '00004', 'username': 'book'}])
	    def test_case2(self, params_B):
	        print("第2个用例输出:{}".format(params_B))

输出:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值