SuperAPI AI 工具集

application-quality-assurance

测试与质量

查看项目

更新于 10-16 08:14

技能介绍

用途 该技能用于对 Web 应用进行全面的质量保障测试,覆盖功能性测试、集成测试和用户体验测试,帮助验证本地 Web 应用的质量表现。

主要能力

  • 测试本地 Web 应用,编写原生 Python Playwright 脚本执行自动化测试。
  • 提供辅助脚本 scripts/with_server.py,用于管理服务器生命周期,并支持同时管理多个服务器。
  • 通过决策树选择测试策略:面对静态 HTML 时直接读取 HTML 文件识别选择器;面对动态 Web 应用时,先判断服务器是否已运行。
  • 对动态应用采用“先侦察后操作”(Reconnaissance-Then-Action)模式:导航并等待 networkidle、截图或检查 DOM、从渲染状态识别选择器,然后用发现的选择器执行操作。
  • 提供参考文件 examples/,包含常见模式示例:element_discovery.py(发现页面上的按钮、链接和输入)、static_html_automation.py(对本地 HTML 使用 file:// URL)、console_logging.py(自动化过程中捕获控制台日志)。

使用方式

  1. 使用辅助脚本前,先运行 --help 查看用法,不要直接阅读源码;只有当确有必要定制解决方案时才阅读源码,因为这些脚本可能很大,会污染上下文窗口。
  2. 启动单个服务器:python scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py
  3. 启动多个服务器(例如后端加前端): python scripts/with_server.py
    --server "cd backend && python server.py" --port 3000
    --server "cd frontend && npm run dev" --port 5173
    -- python your_automation.py
  4. 自动化脚本中只包含 Playwright 逻辑,服务器由辅助脚本自动管理:

from playwright.sync_api import sync_playwright

with sync_playwright() as p: browser = p.chromium.launch(headless=True) # Always launch chromium in headless mode page = browser.new_page() page.goto('http://localhost:5173') # Server already running and ready page.wait_for_load_state('networkidle') # CRITICAL: Wait for JS to execute # ... your automation logic browser.close()

  1. 检查页面时,可以先截图或读取渲染后的 DOM,例如:

page.screenshot(path='/tmp/inspect.png', full_page=True) content = page.content() page.locator('button').all()

然后从检查结果中识别选择器,再用发现的选择器执行操作。

适用场景

  • 需要对本地 Web 应用进行功能、集成和用户体验层面的自动化测试。
  • 需要测试依赖开发服务器或前后端多个服务的 Web 应用。
  • 需要以 Playwright 脚本方式自动化浏览器交互并验证页面行为。

限制与注意事项

  • 常见陷阱:不要在对动态应用等待 networkidle 之前检查 DOM;应先执行 page.wait_for_load_state('networkidle') 再检查。
  • 最佳实践:把捆绑脚本当作黑盒使用,先 --help 查看用法然后直接调用;使用 sync_playwright() 编写同步脚本;完成后始终关闭浏览器;使用描述性选择器(text=、role=、CSS 选择器或 ID);添加适当的等待,如 page.wait_for_selector() 或 page.wait_for_timeout()。
  • 关于收费、价格、平台支持范围、测试效果指标等事实,资料中暂未提供。