pytest使用fixture实现部分前后置

@pytest.fixture(scop=None,autouse=False,params=None,ids=None,name=None)

1.scop:作用域

        function:在函数之前和之后执行

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

                (2)如果说fixture有通过return或yield返回值的话,那么可以把这个值传递到测试用例当中。值通过固件的名称传递的。

        class:在类之前和之后执行

               (1)手动调用的方式是在类的上面加上@pytest.mark.usefixtures("固件名称A")装饰器调用。

         

        package/session:在整个项目会话之前和之后执行。(注意:fixture的scop是session级别,多线程执行,也只会执行一次;)

                (1)一般会结合conftest.py文件来实现。

2.autouse:自动执行,默认是False

如果希望在另一个py文件中调用需要结合contest.py文件使用。

3.params:实现参数化

        (1)如何把值传到Fixture,是通过在fixture函数的参数里面加入request来接收参数(注意:此处的request是固定写法),然后通过request.param来取值。(这里的param没有s)

        @pytest.fixture(scop="function",autouse=False,params=read_yaml())

        def exe_database_sql(request):

                print(request.param)

                print("执行SQL查询")

                yield request.param 

                print("关闭数据库链接")

注意:

fixture怎么把值传到用例里面,通过yield 后面返回request.param来返回值即可。

再在测试用例里面使用固件。

执行结果:

4.ids:不能单独使用,必须和params一起使用,作用是对参数起别名。

使用:

5.name:是给fixture起别名。

特别注意:一旦使用了别名,那fixture的名称就不能再用了,只能用别名。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值