SuperAPI AI 工具集

webapp-testing-patterns

测试与质量

查看项目

更新于 10-15 14:47

技能介绍

用途

本技能是一份 Playwright 自动化测试模式参考,用于指导 Web 应用端到端测试的编写。它把 Playwright 常用能力按主题整理成可查阅的代码示例,帮助开发者选择合适的选择器、等待策略和断言方式,并组织可维护的测试结构。

主要能力

选择器

覆盖多种选择器写法:

  • 文本选择器:page.click('text=Login')、精确匹配 text="Sign Up"、正则 text=/log.*in/i。
  • 角色选择器:基于 ARIA 角色,如 role=button[name="Submit"]、role=textbox[name="Email"]、role=link[name="Learn more"]、role=checkbox[name="Accept terms"]。
  • CSS 选择器:#submit-button、.email-input、button.primary、nav > ul > li:first-child。
  • XPath 选择器:xpath=//button[contains(text(), "Submit")] 等。
  • data 属性:[data-testid="submit-btn"]、[data-test="email-input"]。
  • 链式选择器:page.locator('div.modal').locator('button.submit').click()。

选择器稳定性优先级(从最稳定到最不稳定):data-testid 属性、role= 选择器、text= 选择器、id 属性、CSS 类、XPath。

等待策略

  • 加载状态等待:networkidle、domcontentloaded、load。
  • 元素等待:wait_for_selector 支持 visible、hidden、attached、detached 状态。
  • 超时等待:wait_for_timeout,建议少用。
  • 自定义条件:wait_for_function,可等待 JavaScript 条件或变量。
  • 自动等待:click、fill 等操作会自动等待元素可见、稳定、启用且未被遮挡。

元素交互

包括点击(右键、双击、修饰键、强制点击)、表单填写与按键、下拉选择(按标签、值、索引、多选)、复选框与单选按钮、文件上传(单个、多个、清空)、悬停与聚焦。

断言

使用 expect 进行元素可见性、文本内容(精确、包含、正则)、元素状态(启用/禁用、选中、可编辑)、属性与值、元素数量等断言。

测试组织

给出基础结构、Pytest 推荐写法(fixture 管理 browser 与 page)、测试分组、setup/teardown 示例。

网络拦截

支持模拟 API 响应、屏蔽资源以加速测试、等待特定网络响应。

截图与录像

支持整页截图、元素截图、自定义视口尺寸截图,以及通过 context 录制视频。

调试

包括 page.pause() 打开 Playwright Inspector、监听控制台日志、慢动作模式、通过 DEBUG 环境变量输出详细日志。

并行执行

使用 pytest-xdist 并行运行测试(pytest -n auto 或指定 worker 数),并通过浏览器上下文隔离保证每个测试独立。

使用方式

资料以代码示例形式呈现,可直接参考对应片段编写测试。示例使用 Python 的 playwright.sync_api,并推荐配合 Pytest 使用 fixture 管理浏览器与页面生命周期。并行执行需安装 pytest-xdist。

适用场景

适用于使用 Playwright 编写 Web 应用端到端测试、需要统一选择器与等待策略规范、需要模拟网络请求或录制测试过程、以及需要并行执行测试的团队与开发者。

限制

资料未提供该技能的安装命令、版本要求、支持的浏览器范围、收费或授权信息,也未说明其与具体框架或平台的集成方式。以上内容暂未提供。