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

    一、测试基础补充:测试金字塔

    1、越接近底层速度越快效率越高,越接近顶层速度越慢效率越低
    2、越接近底层成本越低,越接近顶层成本越高

    二、单元测试框架

    1、单元测试

    a、组织代码的单位(函数、类、模块、包)

    b、单元:对组织代码的最小单元的测试,最小单元(函数、类的方法)

    c、单元测试:对函数或者类下面的方法进行的测试

    d、单元测试:开发自己做或者测试开发做;国内一般不做单元测试

    2、框架

    a、不使用框架也可以做自动化测试

    1)使用if判断

    2)assert断言:断言成功不会输出任何内容,断言失败会报AssertionError错误,异常处理

    b、为什么要使用框架

    1)手工

    手工调用测试函数

    手工去管理测试中断

    手工生成测试报告

    2)什么是框架

    框架就是需要解决手工的问题的

    框架:提供各种各样的工具和手段,辅助你提升效率,各种各样的工具手段的集合,形成一套系统

    需要遵循框架的规则

     3、python单元测试框架

    1)unittest(python内置测试框架)

    python内置的测试框架:使用的话需要学习好多基础,和安装的python兼容,稳定。

    2)pytest(主流)

    a、pytest的优点缺点

    公司主流,功能极其强大,使用简单,支持1000左右的插件(强大的插件系统),扩展性强
    实现了测试用例里面的灵活筛选和管理(mark标记功能)
    短处:需要安装与python存在版本上兼容问题,不过目前pytest兼容的比较好

    b、安装:pip install pytest

    c、测试用例编写(pytest规则)

    函数:必须以test开头test_*,也可以以test结尾_test,但是建议以test开头

    模块:必须以test开头test_*.py,也可以以test结尾*_test.py,建议以test开头

    类:规范:以Test开头命名Test*(可以不以Test开头,但是为了规范还是以Test开头)

    d、收集测试用例、运行测试用例

    a、一定要在指定目录下运行pytest,如果想要运行哪个目录下的test用例,需要进入该目录运行pytest命令运行测试用例

    b、运行某个模块里的测试用例的三种方法

    命令行下:pytest 模块名.py

    右键点击"run pytest":(调试单个模块的时候可以使用右击)

      1、file-setting-搜索"pytest"-Tool(Python Integrated Tools)-Testing(Default testing runner)选择pytest

      2、run->点击run...->选择pytest

    使用程序入口run_test.py:

      该py文件是用来收集测试用例,运行测试用例

    import pytest

    if __name__ == '__main__':
      pytest.main()

    c、pytest测试报告结构

    第一部分:test session starts:测试用例失败和通过的结果

    首部分:运行环境、收集测试用例数量:collected 3 items,F(红色):表示不通过,点(绿色):表示通过,测试进度

    第二部分:FAILURES:失败用例回溯信息,显示失败的原因

    第三部分:Captured stdout call:输出捕获信息

    1、(只有用例不通过的时候才会打印信息)
    2、如果实在通过用例需要打印信息,那么在运行用例的时候,使用"-s"
    pytest -s:强制打印信息

    第四部分:short test summary info:总结信息

    统计未通过的信息,成功通过的不会显示

    最后会有一个总结:多少用例失败,多少用例未被选中,多少用例通过,用了多少时间

    d、测试报告的输出

    1)安装生成报告的插件:pip install pytest-report-me(有问题)
    或者pip install pytest-html

    2)输出报告:pytest --report=output.html

    或者 pytest --html=output.html

    f、mark标记功能

    对测试用例进行筛选和管理

    1)在测试用例上添加装饰器:@pytest.mark.标签名

    2)注册标签:建pytest.ini配置文件(项目的根目录下),添加标签(如果不注册标签会告警)

    [pytest]
    markers =
    标签1
    标签2
    ...

    3)运行标签标记的测试用例:pytest -m "标签名"

    3)nose(不用)

    本文来自博客园,作者:%女王%,转载请注明原文链接:https://www.cnblogs.com/lynne-wu/p/14247875.html

  • 相关阅读:
    opencv图片拼接报错cv::Stitcher::ERR_NEED_MORE_IMGS (1)
    python 安装包
    推荐系统之基于邻域的算法-------协同过滤算法
    推荐系统学习之评测指标
    推荐系统之基于图的推荐:基于随机游走的PersonalRank算法
    又一次面试
    隐马尔科夫模型
    斯坦福大学机器学习——高斯判别分析
    python总结
    <转>ML 相关算法参考
  • 原文地址:https://www.cnblogs.com/lynne-wu/p/14247875.html
Copyright © 2011-2022 走看看