SuperAPI AI 工具集

webapp-testing

测试与质量

查看项目

更新于 10-15 20:30

技能介绍

用途:用原生 Python Playwright 脚本测试本地 Web 应用,适合端到端测试、界面自动化与交互测试、视觉回归测试、浏览器日志捕获与调试、截图验证、表单提交与校验测试。不适用于无浏览器的纯接口测试(改用 requests/httpx)、单个函数单元测试、移动应用测试(用 Appium)、负载/性能测试(用 k6/Locust)。

选择路径:静态 HTML 可直接读取文件确定选择器后编写脚本;失败或不完整则按动态应用处理。动态应用若服务器未启动,先启动服务器再运行 Playwright;已启动则采用“先侦察后操作”:导航并等待 networkidle,截图或检查 DOM,从渲染状态识别选择器,再用发现的选择器执行操作。

主要能力:基础结构使用 sync_playwright(),浏览器始终 headless 启动,page.goto 后调用 page.wait_for_load_state('networkidle') 对 SPA 至关重要。选择器优先级为角色(get_by_role)、文本/标签(get_by_text、get_by_label)、测试 ID(get_by_test_id),CSS 选择器仅作最后手段。等待策略包括 wait_for_selector 的 visible/hidden 状态、wait_for_url、wait_for_load_state、wait_for_function。支持整页与元素截图、操作前后对比截图、控制台消息捕获与错误过滤、表单填写/下拉选择/复选框/提交与结果验证、expect 断言(文本、可见性、启用状态、URL、标题)、弹出窗口与新标签页处理。

运行与组织:测试目录可含 conftest.py 及各 test_*.py 文件与 screenshots 目录。运行方式:python -m pytest tests/test_login.py;调试可加 PWDEBUG=1;生成追踪可加 --tracing=on。

限制与注意事项:避免不等待 networkidle、使用 time.sleep 硬等待、在 JavaScript 执行前检查 DOM 等反模式;每次测试应独立设置状态,失败时截图便于调试。资料未提供安装命令、具体收费与价格信息。