pytest

pytest

01-测试框架

测试框架: 抽象出来的工具集合,提供大量组件、工具、功能。

测试框架的主要功能:

  • 用例发现
  • 用例管理
  • 环境管理
  • 用例执行
  • 测试报告

大部分编程语言, 都有测试框架

  • java: junit, testng
  • python: unittest, pytest

image-20260907214712459

02-快速上手

安装

pip install pytest  # 安装
pip install pytest -u  # 升级到最新版

启动

pytest 有三种启动方式

  • 命令 在 pycharm终端中 输入 pytest

  • 代码

    import pytest
    pytest.main()
    
  • 鼠标【不推荐】

image-20260907215714470

​ 是由 pycharm 提供的,不是pytest

​ 行为和前两种方式不一致,需要执行脚本的绝对路径

image-20260907220424635

鼓励

03-看懂结果

image-20260924232756556

image-20260924233052429

image-20260924233305100

image-20260924233337925

04-用例规则

image-20260925090140944

image-20260925090518117

05-配置框架

image-20260925091520950

环境遍历 写错了, 环境变量

image-20260925091928164

06-标记mark

image-20260925092628256

注册 (框架配置),在pytest.ini 中配置

image-20260925092233536

检验是否注册成功, 可以在终端输入pytest --markers 查看

image-20260925092415266

标记: 在相关的测试函数上加上对应的装饰器

image-20260925092820246

筛选,

启动 pytest 时,使用 -m 筛选指定 mark 的用例, 例如:

image-20260925093009209

image-20260925093711471

image-20260925093848387

image-20260925094222596

使用 skipif 需要添加 reason 参数

image-20260925094018459

image-20260925093959402

image-20260925094252375

image-20260925094434836

07-数据驱动测试参数

image-20260925094620621

数据文件

image-20260925094724562

注册 ddt 测试

image-20260925094831533

image-20260925095447064

从参数文件中提取数据

image-20260925095146091

在参数装饰器中传递数据, 如下图

image-20260925095327527

image-20260925095534101

image-20260925095623247

08-夹具fixture

image-20260925095916059

image-20260925100219181

image-20260925100302636

image-20260925100712948

image-20260925101001269

自动使用, 所有的用例都会使用当前fixture 装饰器参数 autouse=True

image-20260925101114304

依赖使用, fixture 可以使用 fixture

image-20260925101403669

image-20260925101425092

返回内容

pytest 中的 yield 只能返回一个参数,

image-20260925101851024

image-20260925102044490

image-20260925102106475

范围共享 fixture, fixture 装饰器中加 scope 参数

image-20260925102550757

image-20260925102703928

如果想要所有的测试用例(不同的py 文件中)都共享同一个fixture, 需要创建一个 conftest.py, 把 fixture 放入其中, 就可以了

image-20260925103222213

09-插件管理

image-20260925173657474

image-20260925173833434

10-常用的第三方插件

pytest 有 1000 多个插件, 具体使用可以参考官方文档: https://pytest.org/en/8.0.x/reference/plugin_list.html

image-20260925180527422

1-pytest-html

image-20260925174459464

插件的使用,可以在终端输入时加特定的参数, 也可以在 配置文件中添加

image-20260925174300812

image-20260925174523650

2-pytest-xdist

image-20260925175016853

3-pytest-rerunfailures

image-20260925175514375

4-pytest-result-log

image-20260925175940458

在pytest.ini 配置文件写一些日志相关的 配置信息

image-20260925175812700

日志的形式如下图所示

image-20260925180056178

11-企业级测试报告

image-20260925182326732

image-20260925181843832

默认只生成测试报告的原始文件,需要 使用 allure generate -o 生成测试报告目录 -c 原始文件目录

可以使用 os.system 自动调用

image-20260925182038652

生成的测试报告样式

image-20260925182427102

image-20260925183120262

image-20260925182859520

image-20260925182915328

image-20260925182959460

12-web 自动化测试实战

image-20260925183906192

image-20260925183926246

image-20260925184021493

也可以自己导入 selenium ,使用 fixture 实现

image-20260925184251508

13-测试框架的封装

image-20260925185213246

14-YAML 文件格式

image-20260925185511810

上图 变成 语言 写错, 编程语言

image-20260925185710128

image-20260925185922021

image-20260925190033638

image-20260925190330841

15-接口测试用例

image-20260925190728322

  1. yaml 表示用例

    image-20260925190907376

16-封装接口自动化框架

image-20260925191532749

image-20260925191659371

image-20260925191820821

image-20260925191943518

image-20260925192121803

从 response 中提取数据 进行断言

image-20260925192341463

image-20260925192548798

image-20260925192834737

image-20260925193034083

image-20260925193224243

image-20260925193404834

image-20260925193506438

脚本整合,结构化测试流程,从 yaml 中提取数据,传递给相关的函数,执行相关的测试

总体就是一个功能/函数的实现, 通过传递不同的 yaml 的参数 实现不同的测试。

image-20260925194140686

image-20260925194813403

image-20260925194850409

使用 logging 模块 实现指定 日志的记录

image-20260925195029300

image-20260925195134109

posted @ 2026-09-25 19:59  Ref-brief  阅读(7)  评论(1)    收藏  举报