码迷,mamicode.com
首页 > 其他好文 > 详细

pytest_前置后置_共享机制

时间:2021-02-26 13:08:35      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:python   ram   down   包含   参数   自己的   清理   session   优先   

DDT 数据驱动测试  思想

应用场景:场景流程是一样的,只有数据不一样。 --- 参数化

python测试框架当中应用数据驱动:

unittest: ddt库
pytest:  自带的。


在测试用例的前面加上:
@pytest.mark.parametrize("参数名",列表数据)
参数名:用来接收每一项数据,并作为测试用例的参数。
列表数据:多组测试数据。

@pytest.mark.parametrize("参数1,参数2",[(数据1,数据2),(数据1,数据2)])

示例:
   @pytest.mark.parametrize("a,b,c",[(1,3,4),(10,35,45),(22.22,22.22,44.44)])
   def test_add(a,b,c):
        res = a + b
        assert res == c



测试用例的: 前置操作(准备工作 - 准备环境/数据/资源...)、
          后置操作(清理工作 -关闭环境/清理数据/释放资源...)

     前置工作 - setup
     执行测试用例(中间执行多少用例呢?)
     后置工作 - teardown

     在每条测试用例执行之前,打印:一条测试用例开始执行
     执行测试用例
     在每条测试用例执行之后,打印:一条测试用例执行结束

     在一个测试类下的第一条用例执行之前,打印:测试类下的用例开始执行
     执行测试类下的用例
     在一个测试类下的最后一条用例执行之前,打印:测试类下的用例执行结束

     定义fixture
     1、函数表示,函数名称自定义。
     2、函数前面,要用@pytest.fixture来声明它是一个fixture
     3、包含前置准备工作的代码、后置清理工作的代码。前置代码和后置代码之间用yield隔开
        yield之前的代码为:前置工作
        yield之后的代码为:后置工作
     4、作用域:function(测试函数-默认)、class(测试类)、module(测试模块)、session(测试会话)
              scope参数来设置


     调用fixture
     在测试类/测试用例的名字上:
     @pytest.mark.usefixtures("定义的fixture函数名")
     支持在测试类/测试用例上调用多个fixture



     共享机制:
     定义的fixture,不同的.py里的测试用例,都可以调用。
     公共的地方:conftest.py(存放fixtures)
     不需要测试用例.py文件去引入,pytest会自动找的。

     (fixtures可以放在类里面、 .py里面、  conftest.py)
     用例当中如果调用了fixture,
     那么,首先找自己所在的文件有没有
     如果有,优先用自己的。
     如果没有,则会去找同级目录下的conftest.py里有没有
     如果同级没有,则会去上找一级目录下的conftest.py里有没有
     ...
     一直到rootdir


     "继承"  fixture使用其它的fixture
     @pytest.fixture(scope="class")
     def class_fix():
        # 前置准备工作的代码
        print("-----测试类下的用例开始执行------")
        yield
        # 后置清理工作的代码
        print("-----测试类下的用例执行结束------")


    @pytest.fixture
    def hello(class_fix):
        # 前置准备工作的代码
        print("打开浏览器,打开淘宝,登陆成功")
        yield
        # 后置清理工作的代码
        print("退出帐号,关闭浏览器")

    执行顺序:
    class_fix的前置
    hello的前置
    hello的后置
    class_fix的后置

    fixture1(fixture2) --fixture2的scope不能低于fixture1
同级

 

pytest_前置后置_共享机制

标签:python   ram   down   包含   参数   自己的   清理   session   优先   

原文地址:https://www.cnblogs.com/zhang-ping1205/p/14448455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!