pytest_fixture的使用


1.标记工厂函数(给谁就用,不给就不用)

  装饰器@pytest.fixture() 修饰一个方法

  使用

    (1)脚本的参数列表中,增加fixture的名字即可

    (2)在脚本之上写一个装饰器@pytest.mark.usefixtures("before")  

    (3)@pytest.fixture(autouse=True)默认全部运行 优先级别大于setup

  作用域

    @pytest.fixture(autouse=True,scope=function")

    @pytest.fixture(autouse=True,scope="class")

    优先级  class级别中  setup_class>fxiture

        function级别中 fxiture> setup

  参数化

    @pytest.fixture(params=["1","2","3"])

    列表中有多少个元素,脚本就会执行多少次

    如果想要获取列表中的内容

      需要在fixture中添加一个request 参数通过request.param进行获取

  返回值

     在使用参数引用的时候,这个参数就是fixture函数的返回值

    如果想要使用之前提到的,参数化内容,直接当成返回值即可

  扩展

    如果脚本中使用参数化  也使用了fixture 会组合

    应用场景用户名有多个  密码也有多个符合和不符合的  依次遍历

面试

pytest是什么 ,有什么特点?

  python 的一种单元测试框架,解决我们多个测试脚本一起执行的问题

  1. 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
  2. 支持简单的单元测试和复杂的功能测试
  3. 支持参数化
  4. 执行测试过程中可以将某些测试跳过,或者对某些预期失败的 Case 标记成失败
  5. 支持重复执行失败的 Case
  6. 支持运行由 Nose,Unittest 编写的测试 Case
  7. 具有很多第三方插件,并且可以自定义扩展
  8. 方便的和持续集成工具集成