首页
/ Playwright v1.50.0 版本发布:测试运行器增强与UI改进

Playwright v1.50.0 版本发布:测试运行器增强与UI改进

2025-05-31 06:30:43作者:翟萌耘Ralph

Playwright 是一个现代化的端到端测试框架,支持跨浏览器自动化测试。它提供了对 Chromium、Firefox 和 WebKit 的自动化控制能力,让开发者能够编写可靠、快速的测试脚本。Playwright 以其强大的 API 和出色的性能在测试领域广受欢迎。

测试运行器功能增强

测试步骤超时控制

v1.50.0 版本为测试步骤引入了全新的超时控制机制。开发者现在可以为单个测试步骤设置独立的超时时间,当步骤执行超过指定时间时,测试将自动失败。这一功能特别适合那些需要精确控制执行时间的测试场景。

test('性能测试', async ({ page }) => {
  await test.step('关键操作步骤', async () => {
    // 此步骤有独立的超时控制
  }, { timeout: 1000 }); // 1秒超时
});

测试步骤跳过功能

新增的 test.step.skip() 方法允许开发者灵活地跳过某些测试步骤,而不会影响后续步骤的执行。这在阶段性开发或调试时非常有用。

test('功能验证', async ({ page }) => {
  await test.step('前置步骤', async () => {
    // 正常执行的步骤
  });
  
  await test.step.skip('待开发功能', async () => {
    // 此步骤将被跳过
  });
  
  await test.step('后置步骤', async () => {
    // 此步骤仍会执行
  });
});

无障碍测试增强

Playwright 进一步强化了无障碍测试能力:

  • toMatchAriaSnapshot() 现在支持将无障碍快照存储在单独的 YAML 文件中,便于管理和维护
  • 新增 toHaveAccessibleErrorMessage() 方法,用于验证元素是否包含特定的无障碍错误信息

快照更新机制改进

快照更新功能得到了显著增强:

  • updateSnapshots 配置新增 changed 选项,仅更新发生变化的快照
  • 引入 updateSourceMethod 配置,提供三种源代码更新方式:
    • overwrite:直接覆盖源代码
    • 3-way:使用三方合并方式更新
    • patch:生成补丁文件(原有方式)
npx playwright test --update-snapshots=changed --update-source-method=3way

UI 改进与可视化增强

HTML 报告优化

默认的 HTML 报告器进行了视觉升级,附件展示更加清晰直观。测试结果中的各种附加信息(如截图、日志等)现在以更友好的方式呈现。

元素选取工具

新增了专门的元素选取按钮,帮助开发者快速生成无障碍快照。这一功能大大简化了无障碍测试的准备工作。

追踪信息增强

在测试追踪视图中:

  • 动作 API 调用现在会显示更多细节(如按键信息)
  • 新增了时间信息展示,帮助分析测试性能
  • 默认禁用了 canvas 内容的显示(可通过设置重新启用),提高了追踪的稳定性

重要变更说明

可编辑性断言行为变更

toBeEditable()isEditable() 方法现在会对非标准可编辑元素(如非 <input>、非 <select> 元素)抛出异常,确保测试的准确性。

快照更新策略变更

updateSnapshots 设置为 all 时,现在会更新所有快照,而不仅仅是失败的快照。如需保留原有行为(仅更新变更的快照),请使用新的 changed 选项。

浏览器支持情况

v1.50.0 版本支持以下浏览器引擎:

  • Chromium 133.0.6943.16
  • Mozilla Firefox 134.0
  • WebKit 18.2

同时,该版本也已通过以下稳定版浏览器的测试验证:

  • Google Chrome 132
  • Microsoft Edge 132

Playwright 1.50.0 版本的这些改进进一步巩固了其作为现代Web应用测试首选工具的地位,特别是在测试控制精度和可视化调试方面的增强,将显著提升开发者的测试效率和体验。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
263
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
869
514
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
130
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
295
331
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
333
1.09 K
harmony-utilsharmony-utils
harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
ArkTS
18
0
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
22
5
WxJavaWxJava
微信开发 Java SDK,支持微信支付、开放平台、公众号、视频号、企业微信、小程序等的后端开发,记得关注公众号及时接受版本更新信息,以及加入微信群进行深入讨论
Java
829
22
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
601
58