温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是python pytest框架

发布时间:2026-10-14 20:38:25 来源:亿速云 阅读:101 作者:小樊 栏目:编程语言

Python 的 pytest 框架 是一个用于编写和运行自动化测试的第三方库,在 Python 生态中非常流行,主要用于:

  • 单元测试(Unit Test)
  • 接口测试(API Test)
  • 功能测试(Functional Test)
  • 自动化测试(Web / App 等)

一、pytest 是什么?

pytest 是一个成熟、简单、功能强大的 Python 测试框架,用来:

  • 编写测试用例
  • 自动发现测试
  • 运行测试
  • 生成测试报告

它的目标是:用更少的代码,写更清晰的测试。


二、为什么用 pytest?

相比 Python 自带的 unittest,pytest 有这些优点:

✅ 语法简单(不需要写类也能测试)
✅ 自动发现测试用例
✅ 强大的断言(直接用 assert)
✅ 丰富的插件生态(如 pytest-html、pytest-xdist)
✅ 支持参数化测试
✅ 支持失败重试、并发执行等


三、pytest 的基本使用

1️⃣ 安装 pytest

pip install pytest

2️⃣ 写一个最简单的测试

文件名:test_demo.py

def test_add():
    assert 1 + 1 == 2

运行测试:

pytest

✅ pytest 会自动找到以 test_ 开头的文件和函数。


3️⃣ 常用命名规则

类型 规则
测试文件 test_*.py 或 *_test.py
测试函数 test_*
测试类 Test*(不能带 __init__)

四、断言(Assertion)

pytest 使用 Python 原生 assert:

def test_example():
    assert "hello" in "hello world"
    assert 10 > 5

失败时 pytest 会给出清晰的错误信息。


五、参数化测试(重点)

避免写重复代码:

import pytest

@pytest.mark.parametrize("a,b,result", [
    (1, 2, 3),
    (2, 3, 5),
    (5, 5, 10)
])
def test_add(a, b, result):
    assert a + b == result

六、测试夹具(Fixture)

用于准备测试环境(如连接数据库、登录等):

import pytest

@pytest.fixture
def data():
    return {"name": "pytest"}

def test_data(data):
    assert data["name"] == "pytest"

七、常用 pytest 命令

pytest                 # 运行所有测试
pytest test_demo.py    # 运行指定文件
pytest -v              # 详细模式
pytest -k "add"        # 按关键字运行
pytest -x              # 失败即停止
pytest --html=report.html  # 生成 HTML 报告

八、pytest 常见插件

插件 作用
pytest-html 生成 HTML 报告
pytest-xdist 并发执行
pytest-rerunfailures 失败重试
allure-pytest 精美测试报告

九、适用场景

✅ 后端接口自动化
✅ 数据处理脚本测试
✅ CI/CD 自动化测试
✅ 教学 / 面试 / 企业项目


十、一句话总结

pytest 是 Python 中最主流、最好用的测试框架,用最少的代码写出最清晰的自动化测试。

如果你愿意,我可以:

  • 给你一个 接口自动化测试示例
  • 讲 pytest vs unittest
  • 或帮你 搭建一个 pytest 项目结构
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手