zoukankan      html  css  js  c++  java
  • pytest知识梳理

    pytest:基于unittest之上的单元测试框架

    • 1、自动发现测试模块的测试方法
    • 2、断言使用assert + 表达式即可
    • 3、可以设置会话级、模块及、类级、函数级的fixtures,用来做数据准备+清理工作
    • 4、丰富的插件库,例如allure

    安装命令:

    pip install pytest

    安装html报告插件

    pip install pytest-html

    pytest插件地址:https://docs.pytest.org/en/latest/reference/plugin_list.html

    一、pytest收集测试用例的规则

    1、默认从当前目录中搜集测试用例,即在哪个目录下运行pytest命令,则从哪个目录当中搜索;

    2、搜索规则:

    • 符合命名规则test_*.py或者*_test.py的文件
    • 以Test开头的测试类(没有__init__函数)当中,以test_开头的函数
    • 以test_开头的函数名

    二、pytest -mark

    对测试用例打标签,在运行测试用例的时候,可根据标签名来过滤要运行的用例

    使用方法:

    在测试用例/测试类前面加上:@pytest.mark.标签名

     三、pytest中fixture的使用 

    fixture定义

    表示此函数为测试环境数据的准备和清理

    在一个fixture内部如何区分环境准备、环境清理呢?

    可以在函数内部使用yield关键字

    yield关键字以后的代码,就是环境清理的代码,即在测试用例执行完成之后会执行的代码

    示例

    @pytest.fixture()
    def test1():
        print('
    开始执行function')
        yield
        print('
    结束执行function')
    

      

    fixture使用

    在测试类或者测试函数前面添加@pytest.mark.usefixture(’test1‘)

    @pytest.mark.usefixtures('test1')
    class TestCase:
     
        def test_b(self):
            print('---用例b执行---')
     
        def test_c(self):
            print('---用例c执行---')
    

      

    四、pytest中数据驱动参数化

    在测试用例的前面加上@pytest.mark.parametrize('参数名',列表数据)

    参数名:用来接收每一项数据,并作为测试的参数

    列表数据:一组参数化测试数据

    五、pytest失败重运行机制

    插件名称:rerunfaukures

    安装方法:pip install pytest-rerunfailures

    使用方式:命令行参数形式

    命令:pytest --reruns 重试次数

    比如:pytest --reruns  2 表示运行失败的用例可以重新运行2次

    命令:pytest --reruns 重试次数 --reruns-delay 次数之间的延时设置(单位秒)

    pytest --reruns 2 --reruns-delay 5

    失败的用例重新运行2次,时间间隔为5秒

    六 、pytest-html测试报告

    安装pytest-html插件

    pytest可以生成多种样式的结果

    1、生成JunitXML格式的测试报告,命令: --junitxml=path

    2、生成result log格式的测试报告,命令:--resultlog=reportlog.txt

    3、生成html测试报告,命令:--html=report eport.html

     七、生成pytest-allure报告

    注意:pytest使用命令行执行命令的时候,如果需要打印print信息,需要添加-s参数

  • 相关阅读:
    Linux GCC
    操作系统中的一些数据结构
    《C程序设计》指针部分学习记录-易混点
    操作系统原理与实践-试验2操作系统的引导记录
    输入字符串测试
    实模式和保护模式
    Unity周记: 2020.07.06-07.12
    Unity论坛问答-如何裁剪一个多边形
    Unity论坛问答-如何让Camera.ScreenToWroldPoint在XZ平面上移动
    Unity杂谈-SRP为什么不再使用CG
  • 原文地址:https://www.cnblogs.com/sgfg-1314/p/14773975.html
Copyright © 2011-2022 走看看