pytest自动化的配置文件

 

1、pytest.ini:pytest框架的核心主配置文件,可以改变pytest的默认行为,一般放在项目的根目录,运行规则无论是主函数模式还是命令模型运行,都会读取这个配置文件,有很多可配置的选项;

    Markers :作用是注册标记,防止拼写错误, 分组执行(冒烟,分模块执行,分接口和 web 执行)

      smoke:冒烟用例,分布在各个模块里面

      pytest -m 'smoke'

      pytest -m 'smoke or usermanage or productmanage'

    testpaths :指示pytest去哪里访问。testpaths是一系列相对于根目录的路径,用于限定测试用例的搜索范围。只有pytest未指定文件目录参数或测试用例标识符时,该选项才有作用;

    addopts :pytest用命令行运行时,有时候需要经常要用到某些参数,又不想重复输入,这时可以使用pytest.ini文件的addopts设置命令行的参数,用空格分隔;

      常用指令:

      -v:显示运行用例的更详细信息

      -s:输出调试信息,包括 print() 打印信息

      -x:表示只要有一个用例的报错,那么测试停止

      -maxfail=2:出现两个用例失败则停止运行用例

      -rerunfail num:失败用例重跑

      -k:根据测试用例的部分字符串指定测试用例,如:pytest -vs ./testcase -k "ao"

      -html ./report/report.html:生成html 的测试报告

      -n:支持多线程或者分布式运行测试用例,如:pytest -vs ./testcase/test_login.py -n 2

     

 

2、__init__.py:每个测试子目录都包含该文件时,那么在多个测试目录中可以出现同名测试文件,作用:标识该目录下的py文件为module package;

 

3、conftest.py:是本地的插件库,conftest.py是固定名称,pytest会自动找到该文件,并读取里面的数据,其中的hook函数和fixture将作用于该文件所在的目录以及所有的子目录,作用:实现数据、代码等共享;

    如:在conftest中自定义pytest框架的前后置函数,作用于该目录下以及子目录下的所有测试用例;

    

 

  作用域:function(测试用例)> class(测试类) > module(测试模块) > session(会话)

  特性:

    1)前后置函数的名称是自定义的,前置、后置是都放在一个函数中,使用关键字yield关键字区分前后置;如:

    

    2)这个前后置函数是独立的,不与测试类放在一起;

    3)作用域:测试函数、测试类、测试模块、session;

    4)在测试用例中调用这个自定义的前后置函数时,有两种情况:

      情况一:

      在需要调用的测试模块、测试类、测试函数前加 @pytest.mark.usefixture(‘自定义的fixture函数名称’),且不需要调用返回值;

      如:@pytest.mark.usefixture('自定义的fixture函数名称')

           def test_login(self):

            pass

      情况二:

      测试模块、测试类、测试用例函数需要调用这个自定义前后置函数的返回值,则需要把fixture函数名称作为测试用例参数;如:

      方法一:在需要调用的测试模块、测试类、测试函数前加 @pytest.mark.usefixture(),自定义的fixture函数名称作为测试用例函数的参数,如:

          @pytest.mark.usefixture()

            def test_login(self, '自定义的fixture函数名称'):

              pass

      方法二:直接在测试用于函数里加 ‘ 自定义的fixture函数名称 ’ 作为参数, 如:

      

 

      方法三:传递参数

      

 

     

 

posted @ 2022-01-06 16:55  哩子吖  阅读(233)  评论(0)    收藏  举报