pytest--fixture之参数化

场景:测试用例执行时,有的用例需要登陆才能执行,有些用例 不需要登陆。setup和teardown无法满足。fixture可以。默认 scope(范围)function

 

• 步骤:
1. 导入pytest
2. 在登陆的函数上面加@pytest.fixture()
3. 在要使用的测试方法中传入(登陆函数名称),就先登陆 4. 不传入的就不登陆直接执行测试方法

import pytest
@pytest.fixture(params=[1,2,3,'linda'])------可以是元组,也可以是列表
def prepara_data(request):------reuest是固定写法
return request.param
------reuest.param是固定写法


def test_one(prepara_data):
print('testdata:%s'%prepara_data)

 案例2:

import pytest
@pytest.fixture(params=[1,2,3,'linda'])
def prepara_data(request):
return request.param

def test_one(prepara_data):
print('testdata:%s'%prepara_data)

def test_two(prepara_data):
if type(prepara_data)is str:      -----test2只执行传递参数为str类型的
print('testdata2:%s'%prepara_data)

if __name__ == '__main__':
pytest.main()

 

posted on 2019-09-21 22:45  barton123  阅读(428)  评论(0编辑  收藏  举报

导航