51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python 测试框架 pytest —— 使用教程

pytest是一个非常成熟的全功能的Python测试框架 。文本记录该框架的使用方法。

简介 {#简介}

  • pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:
    • 简单灵活,容易上手
    • 支持参数化
    • 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
    • pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等
    • 测试用例的skip和xfail处理
    • 可以很好的和jenkins集成
    • report框架----allure 也支持了pytest
  • 官方文档: https://docs.pytest.org/en/latest/contents.html

pytest 规范 {#pytest-规范}

  • pytest 在自动测试时需要遵循一定规则,这些规则可以修改,默认情况为:

    • 所有的单测文件名都需要满足test_*.py格式或*_test.py格式。

    • 在单测文件中,测试类以Test开头,并且不能带有 __init__ 方法

      注意:定义class时,需要以大写T开头

    • 在单测类中,可以包含一个或多个test_开头的函数。

    • 在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。

安装 {#安装}

  • 默认情况下 python 自带 pytest 框架,可以通过命令进行升级安装
  • 验证安装

输出 pytest 版本表明安装成功

运行方式 {#运行方式}

测试类主函数模式 {#测试类主函数模式}

  • 可以在 python 中执行 pytest 命令
  • 引入 pytest 包,在python 中执行代码

命令行模式 {#命令行模式}

  • 直接执行命令 pytest 文件路径/测试文件名
  • console中的指令

| 指令含义 | 指令 | |------------------------|-------------------------------------| | 用于详细显示日志信息 | -v | | 测试结果的简单统计 | -rA | | 只显示整体测试结果 | -q | | 帮助 | -h | | 显示print打印信息 | -s | | 输出html格式报告 | --html=path输出路径 | | 生成log报告 | --resultlog=./log.txt (6.1 版本之后被删除) | | 生成xml报告 | --junitxml=./log.xml | | 当错误达到num时,停止测试 | --maxfail=num | | 只运行有MARKEXPR(自定义)标记的测试 | -m MARKEXPR | | 生成简略的指定需求的报告 | -r option |

函数数据参数化 {#函数数据参数化}

  • 方便测试函数对参数的调用:

pytest 会将定义好的参数列表逐个填入到参数位置中执行代码,有多少个执行多少遍

  • 参数传递

多进程运行cases {#多进程运行cases}

  • 当cases量很多时,运行时间也会变的很长,如果想缩短脚本运行的时长,就可以用多进程来运行。

  • 安装pytest-xdist:

  • 运行方法

其中NUM填写并发的进程数。

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/coding/python/python-pytest/python-pytest/

赞(3)
未经允许不得转载:工具盒子 » Python 测试框架 pytest —— 使用教程