Python的Pytest(2)

1、思考: 完整项目框架里每个模块单独用一个py文件管理,

  • 注册模块-py文件,登录模块-py文件 == 放在用例层目录下管理,testcases
  • 多个模块、py文件里的用例,批量执行 == 需要收集所有模块的用例,一起执行。

1、pytest智能自动收集所有用例:pytest.main(): 自动在这个文件所在目录下收集符合命名规则的用例=pytest.main()通常写在入口文件run.py或main.py

2、pytest.main()收集用例范围

原理: 当前工作目录范围里去找: main所在py文件的目录

  • 跟文件夹的名字 无关。可以放在文件夹里,且文件夹的名字无所谓。
  • py文件名字: test_开头,或者 _test结尾 【 但是一般推荐使用第一种,符合大家的习惯】
  • 用例: 测试用例名字 test开头 | Test开头的类+ test开头方法名字

3、pytest.main("-v","-s"):-v、-s常用命令行参数

-v:显示更详细的测试信息

-s:即时显示测试过程中的标准输出和标准错误

4、控制台-运行结果:F表示断言失败-用例不通过;. 表示断言成功-用例通过

5、问题:默认执行所有收集到的用例 如果要过滤一些用例来执行?

方式一: 修改文件和用例方法的名字

方式二: 指定目录和文件执行 ,加参数控制 --这个只能过滤模块-py

方式三: 加标签【类比手工测试用例的优先级: P1 P2 P3 P4 (important critical major) high medium low】, 加参数过滤用例

  • 用例定义的加一个标签 : 用装饰器形式:@pytest.mark.p2

  • 执行的时候 加参数 -m 标签

  • 如果没提前注册这个标签 会有一个警告, 避免这个警告: 加一个pytest.ini ,注册标签。

6、思考: 收集到的用例执行顺序是什么? == 如果要改变规则 修改文件名字 或者调整代码里顺序。

-根据模块py文件的名字排序 : 数字,ASCII顺序 0-9a-zA-Z

-文件内部: 从上到下的顺序执行

pytest.ini文件

python 复制代码
[pytest]
markers =
        p1
        p2
        p3

run.py文件

python 复制代码
import pytest

pytest.main()

# pytest.main(["-v", "-s"])

# 指定目录和文件执行 ,加参数控制 --这个只能过滤模块
# pytest.main(["-v", "-s", r"testcases\test_register.py"])

# 加标签
# pytest.main(["-v", "-s", "-m p1"])
# pytest.main(["-v", "-s", "-m p1 or p2"])

test_02login.py文件

python 复制代码
import pytest


def test_demo1():
    assert "登录成功" == "登录成功"


@pytest.mark.p2
def test_demo2():
    assert "用户名或密码错误" == "登录成功"
相关推荐
优橙教育1 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
想会飞的蒲公英2 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel3 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记3 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
碎光拾影3 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
CCPC不拿奖不改名3 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code4 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook4 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
Miao121314 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城5 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源