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()