Pytest 测试用例生命周期管理-yield

一. yield 关键字简介

fixture 相当于 setup,那么前置条件有了,后置条件也一定有。通过在 fixture 函数中加⼊ yield 关键字,yield 关键字后面跟着测试所需的测试数据,下面添加清理代码,当 fixture 函数第一次初始化,yield 会调⽤第⼀次初始化结果返回,第⼆次执⾏它下⾯的清理代码返回,这便是后置条件。

yield 语句的使用可以创建更加灵活的测试环境,使得资源的初始化和清理可以在一个 fixture 中完成,同时减少了重复代码。

  • yield 在 fixture 中的工作流程

    🔹 准备工作:在 fixture 函数中,使用 yield 语句之前的代码属于前置条件,通常是初始化测试所需的资源(如数据库连接、测试数据等)。

    🔹 测试执行:yield 会将控制权交给测试函数,并将测试所需的资源传递给它。

    🔹 清理工作:使用 yield 语句之后的代码属于后置条件,测试用例执行完成后才会执行,通常用于清理资源,如关闭文件、断开连接等。


二. yield 的应用

使用步骤

  • 定义一个 fixture 函数,在初始化动作完成之后添加 yield 语句
  • 在 yield 语句后返回测试函数所需数据,当 fixture 函数初始化后,会将测试数据传递给测试函数
  • 在 yield 关键字下方编写测试用例执行之后需要完成的操作

实战案例

  • 代码示例

    python 复制代码
    import pytest
    
    @pytest.fixture(scope="class")
    def login():
        # setup 操作
        print("输入密码")
        username = "user"
        password = 'Aa123456'
        yield username, password  # 相当于return
        # teardown 操作
        print("退出操作")
    
    def test_search(login):
        username, password = login
        print(f"password: {password} , username : {username}")
        print("搜索")
    • 运行结果
相关推荐
五网2 天前
软件测试用例模板怎么写:从用例设计到执行记录的全套指南
软件测试·论文阅读·全文检索·测试用例·论文笔记·用例设计·用例模板
测试界的小码农5 天前
【让 AI 生成的测试用例变成 pytest API 自动化脚本】
人工智能·测试用例·pytest
Da Da 泓10 天前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
会开车的鸟哥11 天前
自动创建测试用例与组件测试向导
测试用例·simuinktest
螺丝钉tina11 天前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
TomEval11 天前
【测AI】第22篇:Agent 系统测试方法 — AI 学会“动手“了
人工智能·python·prompt·aigc·测试用例
车软学堂12 天前
CANoe自动化:跑起第一个测试用例
运维·车载系统·自动化·汽车·测试用例
2601_9679873713 天前
Python在自动化测试中有哪些应用?
python自动化测试·selenium·appium·pytest·性能测试
jiangbqing13 天前
测试功能点,测试用例、测试报告全流程技能直接用
功能测试·测试用例·测试用例 测试报告
自动化测试行业观察13 天前
AI智能测试用例生成技术解析:多源融合+LLM混合生成方案与实践
自动化测试·人工智能·科技·测试用例·智能化测试·ai测试平台·ai智能遍历