zoukankan      html  css  js  c++  java
  • Python测试框架之pytest(二)

    Pytest的setup和teardown函数

    1.setup和teardown主要分为:模块级,类级,功能级,函数级。
    2.存在于测试类内部

    函数级别setup()/teardown()

    运行于测试方法的始末,即:运行一次测试函数会运行一次setup和teardown

    import pytest
    class Test_ABC:
      # 函数级开始
      def setup(self):
          print("------->setup_method")
      # 函数级结束
      def teardown(self):
          print("------->teardown_method")
      def test_a(self):
          print("------->test_a")
          assert 1
      def test_b(self):
          print("------->test_b")
    if __name__ == '__main__':
                  pytest.main("[-s  test_abc.py"])
    

      

    类级别:

    运行于测试类的始末,即:在一个测试内只运行一次setup_class和teardown_class,不关心测试类内有多少个测试函数。

    import pytest
    class Test_ABC:
    # 测试类级开始
    def setup_class(self):
    print("------->setup_class")
    # 测试类级结束
    def teardown_class(self):
    print("------->teardown_class")
    def test_a(self):
    print("------->test_a")
    assert 1
    def test_b(self):
    print("------->test_b")
    if __name__ == '__main__':
    pytest.main(["-s","test_abc.py"])

      

    Pytest配置文件

    pytest的配置文件通常放在测试目录下,名称为pytest.ini,命令行运行时会使用该配置文件中的配置.

    #配置pytest命令行运行参数
       [pytest]
        addopts = -s ... # 空格分隔,可添加多个命令行参数 -所有参数均为插件包的参数配置测试搜索的路径
        testpaths = ./scripts  # 当前目录下的scripts文件夹 -可自定义
    #配置测试搜索的文件名称
        python_files = test*.py 
    #当前目录下的scripts文件夹下,以test开头,以.py结尾的所有文件 -可自定义
    配置测试搜索的测试类名
        python_classes = Test_*  
       #当前目录下的scripts文件夹下,以test开头,以.py结尾的所有文件中,以Test开头的类 -可自定义
    配置测试搜索的测试函数名
      
        python_functions = test_*
    #当前目录下的scripts文件夹下,以test开头,以.py结尾的所有文件中,以Test开头的类内,以test_开头的方法 -可自定义
     
    

      

    Pytest常用插件

    插件列表网址:https://plugincompat.herokuapp.com/
    包含很多插件包,大家可依据工作的需求选择使用。

    1.前置条件:

    文件路径:

    -Test_App
    - - test_abc.py - - pytest.ini

    pyetst.ini配置文件内容:

      [pytest]
    # 命令行参数
     addopts = -s
    # 搜索文件名
     python_files = test_*.py
     # 搜索的类名
     python_classes = Test_*
     #搜索的函数名
        python_functions = test_*
    

     2.Pytest测试报告

    pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告。兼容Python 2.7,3.6

    安装方式:pip install pytest-html

    pip install pytest-html
    

      

    通过命令行方式,生成xml/html格式的测试报告,存储于用户指定路径。插件名称:pytest-html

    使用方法: 命令行格式:pytest --html=用户路径/report.html

    import pytest
    class Test_ABC:
        def setup_class(self):
            print("------->setup_class")
        def teardown_class(self):
            print("------->teardown_class")
        def test_a(self):
            print("------->test_a")
            assert 1
        def test_b(self):
                print("------->test_b")
                assert 0 # 断言失败```
    运行方式:
    1.修改Test——App/pytest.ini文件,添加报告参数,即:addopts = -s --html=./report.html 
        # -s:输出程序运行信息
        # --html=./report.html 在当前目录下生成report.html文件
        ️ 若要生成xml文件,可将--html=./report.html 改成 --html=./report.xml
    2.命令行进入Test_App目录
    3.执行命令: pytest
    执行结果:
        1.在当前目录会生成assets文件夹和report.html文件
     
    

      

    import pytest
    class Test_ABC:
        def setup_class(self):
            print("------->setup_class")
        def teardown_class(self):
            print("------->teardown_class")
        def test_a(self):
            print("------->test_a")
            assert 1
        def test_b(self):
                print("------->test_b")
                assert 0
    

      

     

     

  • 相关阅读:
    JBOSS管理数据库连接
    PowerDesigner使用教程 —— 概念数据模型
    VC Delphi WM_COPYDATA 消息
    VC Delphi WM_COPYDATA
    DELPHI实现键盘勾子
    设置window任务管理器是否可用
    VS2005 MFC使用
    隐藏显示任务栏
    DELPHI实现键盘勾子
    MSN、腾讯QQ、SKYPE、阿里旺旺网页在线客服源代码
  • 原文地址:https://www.cnblogs.com/wxcx/p/13771705.html
Copyright © 2011-2022 走看看