pytest入门 ---- fixture参数说明

fixture实现前后置

参数

scope --作用域  

        function:函数/方法之前和之后执行

                            手动调用方式是在测试用例的参数里加入fixture的名称

        class:类之前和之后执行

                  手动调用的方式是在类上面加上@pytest.mark.usefixtures("方法名")装饰器

        package/session:整个项目会话之前和之后执行。

                        当session只作用于一个.py文件时相当于module

                        一般会结合conftest.py文件来实现

autouse --自动执行

        默认:False;如果改为True,则不需要调用,在对应的作用域会自动执行

params --实现参数化(数据驱动)

ids --参数,必须和params一起使用,给参数起别名

name --给fixture起别名

yield可以将数据返回,类似return,但是return后面就不能再接代码了,而yield后面是可以继续写其他代码的。所以在“后置”操作时,我们都习惯用yield

scope的值为classautouse的值为False时,如何调用fixture

@pytest.mark.usefixtures("方法名")

pytest入门 ---- fixture参数说明_第1张图片

pytest入门 ---- fixture参数说明_第2张图片 

 params  用于实现参数化

比如一个用例需要分别用3个不同数据(等价类和边界值)进行测试,如果一个用例代码写三遍有点笨了,这个时候用params这个参数就可以

pytest入门 ---- fixture参数说明_第3张图片

说明:

1、params=read_yaml() --params=方法名(),调用

2、exe_sql(request)  注意,括号里是request  规定就是这么写,没有为什么

3、request.param  调用通过read_yaml()方法拿到的数据,就要求这么写,上面参数是params,这里是param,就要求这么写

4、exe_sql这里我本来是打印print(request.param)看了一下,然后才yield的。为了说明问题,就是实现参数化(数据驱动),直接强调一下通过yield方法是可以把取到的值作为参数传给其他方法的

5、test_api()方法引用fixture,要在方法中传fixture修饰过的方法名

执行结果:

pytest入门 ---- fixture参数说明_第4张图片

可以看到,用例二分别用测试数据执行了三次。

ids不能单独使用,必须和params一起使用,作用是给参数起别名

看上面那个执行结果

pytest入门 ---- fixture参数说明_第5张图片

如果你的数据太长,那这里显示会很乱,这时候就能用到ids这个参数了

执行结果:

pytest入门 ---- fixture参数说明_第6张图片

name作用是给fixture起别名

上面我们用fixture装饰的方法叫exe_sql,如果这个方法很长或者你不想调用的时候叫这个名字,就可以用namefixture修饰的方法改名字

pytest入门 ---- fixture参数说明_第7张图片

注意:当你给fixture装饰的方法(exe_sql())传了name参数改名字以后,用例调用的时候都要用你改过以后的名字(db),用原来的方法名(exe_sql)是会报错的,因为找不到了。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!å¨è¿éæå¥å¾çæè¿°

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:779450660里面有各种软件测试资源和技术讨论)

你可能感兴趣的:(技术分享,软件测试,软件测试,测试工程师,测试类型,自动化测试)