Pytest 测试用例生命周期管理-自动生效(autouse)

autouse 简介

在自动化测试中,fixture 可以用于自动生效(autouse),它们会自动在每个测试用例运行前自动调用,而无需在测试用例中显式引用 Fixture。这对于执行通用的测试前和测试后操作非常有用。


autouse 参数与 yield 关键字的区别

  • yield 解决的是「怎么清理」

  • autouse=True 解决的是「清理会不会被执行」

pytest 不会主动执行 fixture,fixture 只有在 被使用时才会执行,而 autouse=True 的本质作用即pytest 会在每个测试生命周期节点自动插入这个 fixture。


autouse 的作用本质

  • 创建一个 fixture 函数

    python 复制代码
    @pytest.fixture(autouse=True)
    def clean_env():
  • autouse 的作用本质是调用如上代码时不需要显试调用,默认直接测试函数调用了 fixture 函数

    python 复制代码
    def test_search():

autouse 参数的使用场景

  • 不想原测试⽅法有任何改动,或全部都⾃动实现⾃动应⽤,没有特例,也都不需要 yield 给返回值时可以选择⾃动应⽤。

代码示例

  • 代码示例

    python 复制代码
    import pytest
    
    @pytest.fixture(scope="class", autouse=True)
    def login():
        # setup 操作
        print("输入密码")
        username = "user"
        password = 'Aa123456'
        yield #username, password  # 相当于return
        # teardown 操作
        print("退出操作")
    
    def test_search():
        # username, password = login
        # print(f"password: {password} , username : {username}")
        print("搜索")
    • 运行结果:由结果可见,没有调用 fixture 函数,但 fixture 函数内的条件均执行了
相关推荐
测试员周周19 小时前
【Appium 系列】第18节-重试与容错 — 移动端测试的稳定性保障
人工智能·python·功能测试·ui·单元测试·appium·测试用例
天才测试猿20 小时前
Jenkins+Docker自动化测试全攻略
自动化测试·软件测试·python·测试工具·docker·jenkins·测试用例
测试员周周1 天前
【Appium 系列】第17节-XMind用例转换 — 从思维导图到 YAML
java·服务器·人工智能·单元测试·appium·测试用例·xmind
测试员周周1 天前
【Appium 系列】第20节-测试项目结构设计 — 从脚本到工程
人工智能·数据挖掘·回归·单元测试·appium·测试用例·测试覆盖率
测试员周周2 天前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
测试19983 天前
软件测试 - 单元测试总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
测试员周周3 天前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
测试员周周3 天前
【Appium 系列】第15节-视觉测试 — 截图、对比、视觉回归
人工智能·python·数据挖掘·回归·appium·测试用例·测试覆盖率
June bug4 天前
【AI赋能测试笔记】5基于文档用例生成系统及skills
笔记·功能测试·职场和发展·测试用例·学习方法