【Pytest】笔记

1. 安装

1.1 安装 pytest

bash 复制代码
pip install pytest

1.2 安装第三方报告插件 pytest-html

这个是非必要的,也可以安装其他第三方插件。

bash 复制代码
pip install pytest-html


2. 编写测试用例

  • 测试用例文件名必须满足的格式:test_*.py, 或者 *_test.py
  • 在这些测试文件中,类名必须以 Test 开头;函数名必须以 test 开头。


3. 运行测试用例

3.1 执行全部用例

  • 方式一:
    • 在命令行窗口,进入自动化项目的根目录,执行命令 pytest 即可。
  • 方式二:
    • 在 pycharm (或其他IDE)中的 terminal 中,执行命令 pytest

需要特别注意的是:

直接执行 pytest 命令不会将当前目录设置为模块搜索路径

所以更推荐执行命令 python -m pytest

bash 复制代码
python -m pytest

以上命令都是执行当前目录下的所有的测试用例。


3.2 挑选用例执行

指定一个模块(一个python文件)

比如,只执行 test_incorrect_login.py 文件:

bash 复制代码
python -m pytest cases\login\test_incorrect_login.py

指定一个目录

比如,执行 cases 目录下的所有测试用例

bash 复制代码
python -m pytest cases

指定多个目录

比如,执行 cases1 ,cases2\login 目录下的所有测试用例

bash 复制代码
python -m pytest cases1  cases2\login

指定模块中的一个类

比如,执行 cases\login\test_incorrect_login.py 模块中的 Test_incorrectLogin 类

bash 复制代码
python -m pytest cases\login\test_incorrect_login.py::Test_incorrectLogin 

指定模块中的一个类中的方法

比如,执行 cases\login\test_incorrect_login.py 模块中的 Test_incorrectLogin 类 中的 test_c001001 方法

bash 复制代码
python -m pytest cases\login\test_incorrect_login.py::Test_incorrectLogin::test_c001001

指定 目录、模块、类、方法 的名字

可以使用命令行参数 -k 后面加名字的一部分来挑选要执行的测试项

比如,只执行名字中包含 c001001 的用例

bash 复制代码
python -m pytest -k c001001 -sv

注意,-k 后的参数

  • 可以是测试函数的名字,可以是类的名字,可以是模块文件名,也可以是目录名字
  • 对大小写敏感
  • 不一定要完整,可以是名字其中的一部分
  • 可以用 not 表示选择名字中不包含,比如
bash 复制代码
python -m pytest -k 'not c001001' -sv
  • 可以用 and 表示选择名字同时包含多个关键字,比如
bash 复制代码
python -m pytest -k "incorrect and 密码2" -s
  • 可以用 or 表示选择名字 包含指定关键字之一即可,比如
bash 复制代码
python -m pytest -k "incorrect or 密码2" -s

3.3 执行用例时的参数解释

比如,执行用例

bash 复制代码
python -m pytest -k 'not c001001' -sv

-m

pytest 作为模块运行,确保使用当前 python 环境中的 pytest

-k

过滤测试。比如,参数后面跟需要执行的包含某个名字的用例。

-s

显示输出 。允许测试中的所有print 语句输出在控制台。

-v

详细模式。输出更详细的测试结果信息,比如每个测试用例的名称和状态。

-sv

顾名思义,-s-v 的组合模式。

-x

遇到第一个失败用例时立即停止测试

--if(两个 - )

仅重新运行上一次失败的测试测试

-m <标记名>

只运行用 @pytest.mark.<标记名> 装饰过的测试

相关推荐
智者知已应修善业8 小时前
【51单片机8位数码管动态显示日期小数点风格】2023-11-13
c++·经验分享·笔记·算法·51单片机
智者知已应修善业8 小时前
【51单片机有三个LED 分别第一个灯闪三下 再到第二个灯又闪三下 再到第三个灯又闪三下 就这样循环程序】2023-11-16
c++·经验分享·笔记·算法·51单片机
暴躁小师兄数据学院8 小时前
【AI大数据工程师特训笔记】第04讲:PostgreSQL 数据库内置函数详解
大数据·数据库·笔记·ai·语言模型
z落落10 小时前
C# 数组 最终完整版全套笔记(一维+多维+交错+引用类型+对象数组)
java·笔记·c#
searchforAI11 小时前
B站视频转笔记用哪个工具?2026年四款AI笔记工具对比实测
人工智能·经验分享·笔记·gpt·学习·视频总结·ai笔记
RainCity12 小时前
Java Swing 自定义组件库分享(九)
java·笔记·后端
小当家10512 小时前
如何评估你的 Skill 质量——从触发准确率到输出质量的系统方法
测试
05候补工程师12 小时前
【408考研·数据结构专题】二叉树、树与森林、线索树及哈夫曼树核心考点与秒杀技巧深度总结
数据结构·经验分享·笔记·考研·算法
一条破秋裤13 小时前
【0527】Jetson Nano U-Boot 有线网卡与 VMware 直连网络调试笔记
网络·笔记
快乐得小萝卜14 小时前
笔记:TREX工具-1
笔记·深度学习·机器学习