基于superpowers生成的UI 自动化测试框架设计文档skill
2026/6/23 0:38:26 网站建设 项目流程

主题: 基于 pytest + Playwright 的 UI 自动化测试框架

技术选型

维度选择理由
浏览器驱动Playwright内置浏览器管理,速度快,API 简洁,与 pytest 集成成熟
设计模式POM (Page Object Model)页面逻辑与测试分离,维护性强
配置管理pytest.ini + conftest.py标准 pytest 生态做法,简洁够用
报告Allure可视化报告,支持步骤标记、截图附件

项目结构

ui-test-framework/ ├── pytest.ini # pytest 配置 ├── conftest.py # fixtures:browser 生命周期管理 ├── pages/ # Page Object 层 │ ├── __init__.py │ └── baidu_page.py # 百度首页 + 搜索结果页 ├── tests/ # 测试用例层 │ ├── __init__.py │ └── test_baidu_search.py # 搜索"世界杯赛程"测试 ├── utils/ # 工具层 │ ├── __init__.py │ └── driver.py # Playwright browser 工厂 └── requirements.txt # 依赖

分层职责

  • pages/— 封装百度首页的搜索框、搜索按钮等元素定位和操作方法
  • tests/— 纯测试逻辑,调用 Page 方法,断言结果
  • utils/— Playwright browser 实例的创建与销毁
  • conftest.py— 为每个测试函数自动注入 browser 和 page 对象

测试流程

  1. conftest.py fixture 启动 Chromium 浏览器(headless 模式)
  2. 注入 page 对象到测试函数
  3. 测试函数创建 BaiduPage 实例
  4. BaiduPage.open() → 导航到 https://www.baidu.com
  5. BaiduPage.search("世界杯赛程") → 输入关键字并搜索
  6. 等待搜索结果加载
  7. 断言:搜索结果标题包含"世界杯赛程"
  8. fixture teardown 自动关闭浏览器

Allure 集成

  • 运行:pytest --alluredir=reports/allure-results
  • 生成:allure generate reports/allure-results -o reports/allure-report --clean
  • 查看:allure open reports/allure-report
  • 使用allure.step()标记步骤,失败自动截图

依赖

  • pytest
  • pytest-playwright
  • allure-pytest
  • playwright

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询