美文网首页
Python_pytest学习笔记

Python_pytest学习笔记

作者: 成功在于实践 | 来源:发表于2018-11-10 00:54 被阅读39次
    Snipaste_2018-11-10_00-50-36.png

    第一节课
    pytest基本介绍

     pytest安装包安装:           
          1.进入下载包路径
          2.python setup install 
          
     命令行安装:
          1.mac/linux:sudo pip3 install -U pytest # -U:可以理解为--upgrade
          2.管理员方式运行cmd:pip3 install -U pytest
      
      
    Pytest运行方式: 
         1.测试类主函数模式: pytest.main("-s  test_abc.py")
         2.命令行模式:       pytest 文件路径/测试文件名
        
    断言:函数内部使用assert判断要断言内容
    

    第二节课
    pytest配置
    1.命令行参数 addopts = -s —reruns n —html=路径/xx.html # 命令之间空格分隔
    2.搜索路径:testpaths = 脚本存放的路径
    3.搜索文件名:python_files = test_*.py

     4.搜索测试类名:python_classes = Test_*
     5.搜索方法名:python_functions = test_*
    

    第三节课
    pytest插件
    1.pytest-html: 生成测试报告
    安装:pip3 install pytest-html
    使用:跟在命令行里,pytest 测试文件 —html=路径/xx.html

        2.pytest-ordering: 控制测试函数运行顺序
            使用:函数修饰 @pytest.mark.run(order=x)
            x:
               1.全为正数 或者 全为负数 值越小 优先级越高,意味着最先执行
               2.正数和负数同时存在,正数优先级高
               3.值为负数时,优先级低于没被标记的测试方法
               4.值为正数时,优先级高于没被标记的测试方法
               
           
        3.pytest-rerunfailures : 失败测试函数重试机制
            使用:在命令行参数中配置:—reruns n 
            n:重试次数
    

    第四节课

    fixture修饰器来标记固定的工厂函数,在其他函数,模块,类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作。
        方法:fixture(scope="function", params=None, autouse=False, ids=None, name=None)
        常用参数:scope:被标记方法的作用域
           "function" (default):作用于每个测试方法,每个test都运行一次
           "class":作用于整个类,每个class的所有test只运行一次
        params:(list类型)提供参数数据,供调用标记方法的函数使用
        autouse:是否自动运行,默认为False不运行,设置为True自动运行 
        
    使用:
    1.标记工厂函数: @pytest.fixture()
        1.参数引用:写在测试函数的参数内
        2.函数引用:@pytest.mark.usefixtures(“工厂函数名”)
    2.自动运行:
        autouse:设置为True会根据scope来去自动运行工厂函数
    3.参数
        fixture的params参数,params类型必需是列表  
    

    第五节课

    练习:
        1.进入设置
        2.点击搜索按钮
        3.使用fixture的params方法提供的三个参数值
    

    第六节课
    跳过测试函数:根据特定的条件,不执行标识的测试函数.
    方法:skipif(condition, reason=None)
    参数:
    condition:跳过的条件,必传参数
    reason:标注原因,必传参数
    使用方法: @pytest.mark.skipif(condition, reason="xxx")

    标记为预期失败函数:
    方法:xfail(condition=None, reason=None, raises=None, run=True, strict=False)
        常用参数:
            condition:预期失败的条件,必传参数
            reason:失败的原因,必传参数
        使用方法: @pytest.mark.xfail(condition, reason="xx")
        
        
    pytest函数数据参数化parametrize:
         1.单个参数:@pytest.mark.parametrize(‘参数名’,参数值)
          注意: 
           参数值:[值1,值2,….]
           有多少个参数值方法会运行多少次
         2.多个参数:@pytest.mark.parametrize(‘参数1,参数2,....’,参数值)
          注意:
           1.多个参数需要逗号分隔
           2.参数值:[(参数1的值,参数2的值,..),()…]
         3.参数值可以通过函数返回值使用:@pytest.mark.parametrize(‘参数1,参数2,....’,函数返回值)
         4.测试函数的参数必须等于parametrize表示参数
    
    # pytest.ini
    [pytest]
    
    # Search Params
    addopts = -s
    ;addopts = --reruns n
    ;addopts = -s --html=./report/test.html
    ;addopts = -s --junitxml=./report/test1.xml
    
    ;# Search Path
    ;testpaths =
    ;
    ;# Search File
    ;python_file = demo*.py
    ;
    ;# Search Class
    ;python_classes = Test_*
    ;
    ;# Search Function
    ;python_functions = test_*   
    

    相关文章

      网友评论

          本文标题:Python_pytest学习笔记

          本文链接:https://www.haomeiwen.com/subject/gswaxqtx.html