🚀 UI 测试自动化系统

基于 OpenClaw + Claude Code 的端到端研发自动化系统

📅 2026 年 3 月 18 日 🎯 任务 85 ⚡ v1.0.0 🔧 Python 3.12

项目概述

本项目是《基于 OpenClaw + Claude Code 的端到端研发自动化系统》的核心组成部分,专注于 UI 测试自动执行操作录屏异常截图日志采集 功能的开发。

4
核心功能模块
5
源代码文件
100%
异步支持
AI 集成可能

核心功能

🎯
UI 测试自动执行

基于 Playwright 框架,提供全面的浏览器自动化能力。支持页面导航、元素定位、表单操作、鼠标键盘模拟、断言验证等功能。

  • 多浏览器支持 (Chromium/Firefox/WebKit)
  • 智能元素定位 (CSS/XPath/Text)
  • 丰富的交互操作
  • 灵活的等待机制

🎬
操作录屏

自动录制测试执行过程中的所有浏览器操作,生成高清视频文件用于问题回溯和演示。支持 FPS、质量配置,自动生成动作回放脚本。

  • 1080p/60fps 高清录制
  • WebM/MP4格式可选
  • 动作序列记录
  • 智能文件管理

📸
异常截图

在测试失败或关键节点自动截取屏幕截图。支持全屏、元素、对比等多种截图模式,智能对比检测 UI 变化。

  • 错误自动截图
  • 步骤截图记录
  • UI 对比分析
  • 缩略图生成

📊
日志采集

全面采集测试过程中的各类日志信息。包括控制台输出、网络请求、系统事件和性能指标,支持多级过滤和全文搜索。

  • 控制台日志捕获
  • 网络请求追踪
  • 性能指标监控
  • 多格式导出

系统架构

🔗 上游系统
OpenClaw | Claude Code | Jenkins CI/CD
⚙️ 集成测试运行器
IntegratedTestRunner
🎯 UI 执行器
UITestAutoExecutor
🎬 录屏模块
ScreenRecorder
📸 截图模块
ScreenshotManager
📊 日志采集
LogCollector
📁 输出产物
测试报告 | 截图 | 录屏 | 日志

技术栈

层级 技术选型 说明
🐍 核心语言 Python 3.12+ 主开发语言,异步编程支持
🌐 浏览器自动化 Playwright 1.40+ 微软开源的端到端测试工具
🖼️ 图像处理 Pillow + OpenCV 截图处理和对比分析
🎥 视频处理 Playwright 内置 浏览器操作录制
📝 日志管理 Python logging 结构化日志记录
📄 报告生成 Jinja2 + Markdown HTML/JSON/XML报告
🤖 AI 集成 OpenClaw SDK + Anthropic API AI 辅助分析和代码生成

代码示例

基础测试用例

from src.test_runner import IntegratedTestRunner from src.ui_executor import TestCase async def run_test(): runner = IntegratedTestRunner({"headless": True}) await runner.start_session() try: test_case = TestCase( name="Google Search Test", url="https://www.google.com", steps=[ {"action": "fill", "selector": "textarea[name='q']", "value": "UI automation"}, {"action": "click", "selector": "input[name='btnK']"}, {"action": "wait", "value": "3000"}, {"action": "assert_element", "selector": "#search"}, {"action": "screenshot", "name": "search_results"} ] ) result = await runner.run_test(test_case) print(f"Test {result.test_case.status.value}") finally: await runner.end_session()

独立模块使用 - 截图管理器

from src.screenshot_manager import ScreenshotManager manager = ScreenshotManager() # 错误截图 error_path = await manager.capture_error(page, "Element not found", "login_test") # 步骤截图 step_path = await manager.capture_step(page, "After login", "user_flow") # 对比截图 comparison = await manager.capture_comparison(page, "baseline.png", "homepage_check") if comparison["has_difference"]: print(f"UI changed! Diff saved to: {comparison['diff_screenshot']}")

集成能力

🤖
OpenClaw AI Agent

通过自然语言指令驱动测试执行。用户可以用日常语言描述测试需求,OpenClaw 自动调用 UITAS 执行并返回结果。

💻
Claude Code 编程助手

AI 辅助生成和修复测试代码。根据需求描述自动生成测试脚本,分析失败日志自动修复代码问题。

🔄
CI/CD流水线

深度集成 Jenkins、Docker、Kubernetes。支持容器化部署,自动化触发测试,发布测试报告。

项目结构

ui_test_automation/ ├── src/ │ ├── __init__.py │ ├── ui_executor.py # UI 执行器 │ ├── screen_recorder.py # 录屏模块 │ ├── screenshot_manager.py # 截图模块 │ ├── log_collector.py # 日志采集 │ └── test_runner.py # 集成运行器 ├── tests/ │ ├── __init__.py │ └── example_tests.py # 示例测试 ├── config/ │ ├── __init__.py │ └── settings.py # 配置管理 ├── docs/ │ ├── system_architecture.md # 系统架构文档 │ └── product_specification.md # 产品说明文档 ├── logs/ # 日志输出 ├── screenshots/ # 截图输出 ├── recordings/ # 录屏输出 ├── requirements.txt # 依赖列表 └── README.md # 说明文档

输出产物

类型 目录 格式 用途
📄 HTML 报告 ./report.html HTML 可视化测试结果
📊 JSON 报告 ./session_report_*.json JSON 结构化数据
📋 XML 报告 ./test_results.xml XML JUnit 兼容
🖼️ 截图 screenshots/ PNG/JPEG 问题诊断
🎥 录屏 recordings/ WebM/MP4 过程回溯
📝 日志 logs/ TXT/JSON 详细追踪

快速开始

安装依赖

# 安装 Python 依赖 pip install -r requirements.txt # 安装 Playwright 浏览器 playwright install chromium

运行测试

# 运行示例测试套件 python tests/example_tests.py # 使用 pytest 运行 pytest tests/ -v --html=report.html # 并行执行 pytest tests/ -n auto