《pytest框架项目实战——用法汇总最全版本》

本文介绍了pytest的参数化实现,包括单参数和多参数用例、重命名、跳过未完成或有bug的用例,以及测试用例的调度策略,如只运行失败的用例和持续集成中的应用。此外,还提到了回归测试前的冒烟测试和pytest在main函数中的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytest参数化

参数化实现

测试添加@pytest.mark.parametrize(参数名,参数值)

  • 单参数情况
  • 多参数情况

  • 用例重命名——添加ids参数

  • 用例名为中文

  • 参数化——笛卡尔积

  • 标记测试用例

跳过用例

某一个功能还没开发完成,但是用例已经写完了。或者某个功能还处于Bug状态,想在此版本中运行,但不作为参考,预期他为失败。

运行用例

测试用例调度与运行

pytest --lf 只运行上次运行失败的那些用例

pytest --ff 先运行上次运行失败的用例,再运行其余的用例

Pytest命令行常用参数

回归测试之前,一般会进行冒烟测试,

python解释器执行pytest (持续集成会用到)

  • 使用main函数

福利
为方便大家自学软件测试,分享更多测试资料
主体内容包含:测试面试题,功能测试、性能测试、自动化测试等学习知识内容。
软件测试自学资料包领取

### pytest 框架详解 #### 测试能力与特点 Pytest 提供了强大的验收测试功能,类似于 Robot Framework 的能力[^1]。这一工具最显著的特点在于提供详细的失败信息反馈,帮助开发者迅速定位并修正问题。 #### 兼容性和扩展性 此框架不仅支持最新的 Python 版本,而且兼容多个其他测试框架如 unittest、doctest 和 nose,实现了无缝集成。此外,pytest 社区维护着超过300个插件,极大地增强了测试的功能和灵活性。 #### 设计理念 为了简化代码编写过程并减少错误发生几率,pytest 被精心设计成易于使用的自动化测试解决方案。它允许使用者结合像 Selenium 或者 Splinter 这样的 GUI 工具来进行更加直观便捷的操作。 --- ### 实战项目案例分析 假设有一个简单的 Web 应用程序需要进行全面的单元测试和集成测试。下面将展示如何利用 pytest 来构建这样一个完整的测试套件: #### 安装依赖项 首先确保环境中已经安装好了必要的库文件: ```bash pip install pytest selenium splinter requests ``` #### 编写基本结构化测试脚本 创建名为 `tests` 文件夹,并在其内部建立如下所示的基础架构: - tests/ - conftest.py (配置全局设置) - test_webapp.py (具体页面逻辑验证) ##### 配置全局参数 (`conftest.py`) ```python import pytest from splinter import Browser @pytest.fixture(scope="module") def browser(): """启动浏览器实例""" b = Browser('chrome') yield b b.quit() ``` ##### 页面交互测试 (`test_webapp.py`) ```python def test_homepage_title(browser): url = "http://example.com" # 访问目标网址 browser.visit(url) assert "Example Domain" in browser.title, f"{url} title does not match expected value." ``` 以上例子展示了怎样通过 pytest 结合 splinter 插件实现对网页应用首页标题栏内容的有效校验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值