一、Fixture参数之params参数可实现参数化:(可以为list和tuple,或者字典列表,字典元祖等)
实例如下:
import pytest
def read_yaml():
return ['1','2','3']
@pytest.fixture(params=read_yaml())
def get_param(request):
return request.param
def test01(get_param):
print('测试用例:'+get_param)
if __name__ == '__main__':
pytest.main(['-s','pytest-demo.py'])
注意:
1.此例中test01方法被执行了三次,分别使用的数据为'1','2','3',此结果类似于ddt数据驱动的功能。特别注意:这里的request参数名是固定的,然后request.param的param没有s哦。
2.可以把return request.param改成yield request.param,yield也是返回的意思,它和return的区别在于return返回后后面不能接代码,但是yield返回后,后面还可以接代码。
Fixture其他参数:
1.autouse参数:自动执行,上面的示例已经用到了。
2.ids参数:ids参数是给每一项params参数设置自定义名称用的,意义不大。
3.name参数:相对于把被fixture标记的方法重命名,意义不大。如下图所示案例:
@pytest.fixture(name='m

本文介绍了pytest框架中fixture的params参数化功能,通过示例展示了如何使用params进行数据驱动测试,以及fixture的autouse和ids参数。同时,文章还探讨了使用@pytest.mark.parametrize方法进行参数化的两种方式,包括类似解包功能的应用。文章最后推荐了一个软件测试技术交流群。
最低0.47元/天 解锁文章
382

被折叠的 条评论
为什么被折叠?



