1. 引言
端到端测试已经发生了巨大演变,而Playwright站在了最前沿。Playwright提供了一个完整的生态系统,使开发人员能够快速可靠地编写、调试和维护测试。从其强大的测试运行器到丰富的开发者工具(如VS Code扩展、Codegen、UI模式和Trace Viewer),Playwright覆盖了测试旅程的每个阶段。随着最近Playwright MCP的集成以及GitHub Copilot编码代理中包含的Playwright MCP服务器,AI辅助开发已成为现实,极大地提高了生产力并实现了更智能的工作流程。
新增:使用Playwright进行Azure应用测试 Playwright已内置到Azure应用测试中,这是一个统一的功能和性能测试服务。它提供可扩展的云并行测试执行和CI连接的验证,以加速反馈。了解更多关于Azure应用测试的信息。
2. 开始使用Playwright
Playwright支持TypeScript/JavaScript、Java、Python和.NET。本文使用TypeScript代码片段,但请查看文档了解其他语言。
安装Playwright:
|
|
这将设置浏览器二进制文件、基本测试套件和Playwright配置文件。
您的第一个测试可能如下所示:
|
|
运行测试:
|
|
或运行特定测试文件:
|
|
安装Playwright for VS Code扩展(160万次下载)以获得:
- 可视化测试资源管理器来运行和过滤测试
- 内联测试结果和错误消息
- 一键访问Trace Viewer
- 使用Codegen记录测试
- “使用AI修复"按钮进行AI辅助测试修复
通过该扩展,Playwright成为编辑器中的一等公民,使测试编写快速、流畅且有趣。
3. 测试编写变得简单:Codegen和UI模式
手动编写测试可能很繁琐,特别是在选择选择器或记住每个交互时。Playwright通过Codegen使这变得更容易。
Codegen:在交互时记录
使用npx playwright codegen
打开您的应用程序,并在您点击时自动生成测试代码。
|
|
或使用VS Code测试侧边栏中的"记录新测试"按钮。
这会实时输出功能测试代码。了解更多关于Codegen的信息。
UI模式:可视化测试探索
以交互模式运行Playwright:
|
|
这将启动一个可视化界面来:
- 点击浏览和运行测试
- 在监视模式下即时重新运行测试
- 按状态、标签或文件过滤测试
- 直接从UI选择定位器
- 检查每个测试步骤,包括控制台输出、错误和网络请求
- 检查DOM快照以进行可视化调试
UI模式让您能够通过时间旅行体验来探索、运行和调试测试。查看UI模式文档。
Codegen和UI模式共同使编写和运行测试变得快速、直观和可视化。
4. 报告和可观察性:HTML报告
Playwright的HTML报告提供了每次测试运行的交互式概览:
- 每个测试的通过/失败状态
- 每个测试和套件的执行时间
- 详细的错误消息和堆栈跟踪
- 网络请求和控制台日志
- 每个测试的逐步分解
- 直接链接到跟踪文件
通过在playwright.config.ts中使用此配置默认生成HTML报告:
|
|
测试执行后查看报告:
|
|
过滤、分组和搜索功能使 pinpoint问题和理解测试套件健康状况变得容易。
5. 调试和可观察性:Trace Viewer
不稳定或失败的测试是不可避免的,但重现它们不一定困难。Playwright为您提供一流的可观察性工具,特别是Trace Viewer。
什么是Trace?
跟踪是测试运行的完整记录 - 每次点击、网络请求和DOM快照。您可以交互式地探索跟踪以了解失败之前、期间和之后发生了什么。
在配置中启用跟踪:
|
|
测试失败后,启动跟踪查看器:
|
|
您将看到操作时间线、网络活动、控制台日志等,类似于我们在UI模式中看到的内容。
CI上的跟踪:不再有"在我机器上工作”
跟踪无缝集成到CI中:
- 失败的测试在第一次重试时生成跟踪
- 跟踪保存为zip文件并附加到CI工件
- 下载并在本地检查它们
这意味着即使在无头CI运行中,您也能获得视觉记录。调试回归变得快速且协作。在CI跟踪指南中了解更多信息。对于云规模并行执行和CI连接验证,请查看Azure应用测试。
跟踪使每个测试都能自我解释,无论是在本地还是在CI上。您得到的是一个故事,而不仅仅是一个堆栈跟踪。
复制为提示:AI调试
当遇到失败时,使用HTML报告、Trace Viewer或UI模式中的"复制为提示"功能为AI调试生成提示。与GitHub Copilot或其他AI助手共享上下文。
查看此视频以了解有关使用Playwright进行AI调试的更多信息。
6. AI原生测试与Playwright MCP
Playwright MCP:AI浏览器自动化服务器
Playwright MCP(模型上下文协议)桥接AI代理和实时浏览器会话,让AI通过Playwright与Web应用程序交互。
Playwright MCP为AI代理赋能:
- 完整的浏览器状态:当前页面和可访问性树
- 完整的交互工具套件:点击、输入、等待等
- 实时页面快照:随时请求当前状态
查看此视频以轻松安装和运行Playwright MCP:VS Code中的Playwright MCP。
Playwright MCP的用例
Playwright MCP解锁了智能代理行为:
- 自动化测试执行和探索。查看此视频了解让AI探索您的应用程序并生成测试
- 测试生成。查看此视频了解使用Playwright MCP进行AI辅助测试生成
- 从用户故事或需求自动化手动测试。查看此视频
- 任务自动化:填写表单、提交数据、完成工作流程。查看此视频了解使用Playwright MCP填写表单,或此视频了解AI代理如何控制您的浏览器
如果您想了解更多关于MCP的信息,请查看这篇关于10个MCP服务器入门的文章。
7. GitHub Copilot的编码代理:由Playwright MCP驱动
GitHub的Copilot编码代理内置了Playwright MCP,实现了实时应用程序交互。当您要求Copilot代理实现功能或修复错误时,它使用Playwright MCP打开浏览器、导航到应用程序并验证更改。
自验证AI工作流程
使用Playwright MCP,Copilot代理可以:
- 启动浏览器并在本地加载您的应用程序
- 与它刚刚修改的UI交互
- 视觉确认预期效果
- 使用页面状态和日志捕获回归
这创建了一个闭环: 提示 → 生成代码 → 运行并观察应用程序 → 确认成功 → 报告回来
无需额外设置
无需配置。将问题分配给Copilot编码代理,它将使用Playwright MCP在真实浏览器中验证其工作。
查看此视频以了解Copilot编码代理的实际操作:使用Playwright MCP的GitHub Copilot编码代理。
通过Playwright MCP,Copilot编码代理不仅编写代码 - 它实时检查其工作。
8. 实战工作流程:将所有内容整合在一起
构建可靠的端到端测试只是故事的一部分。在实际项目中,您需要一个无缝的工作流程,集成编写、调试和维护测试,同时拥抱AI驱动的自动化。Playwright的生态系统让您能够做到这一点。
实战工作流程清单
- 使用Codegen引导测试:快速捕获用户流并生成测试代码
- 在VS Code中编写和优化测试:使用内联反馈和AI修复来组织、运行和调试测试
- 使用UI模式探索测试:交互式浏览、过滤和重新运行测试
- 使用HTML报告进行报告和观察:获取测试套件的详细交互式概览
- 使用Trace Viewer调试失败:逐帧检查DOM快照、网络活动和日志
使用AI代理增强工作流程
让AI将您的测试提升到新的水平:
- 使用VS Code扩展中的"使用AI修复"按钮或Trace Viewer、UI模式和HTML报告中的"复制为提示"功能,通过AI辅助修复错误
- 通过Playwright MCP,AI代理可以探索您的应用程序,建议新的测试用例,并在首次打开浏览器并与应用程序交互后从自然语言生成新测试
- GitHub Copilot的编码代理使用Playwright的MCP在执行更改后在真实浏览器中验证其工作,确保其生成的代码不仅在语法上正确,而且在功能上针对您的应用程序进行了验证
这种人类创造力和AI精确性的融合使团队能够充满信心和速度地交付。
结论:拥抱Playwright端到端测试的未来
Playwright不仅仅是一个测试框架,它是一个完整的生态系统,简化了端到端测试旅程的每一步。从使用Codegen生成测试、使用Trace Viewer调试、无缝编辑器集成、与UI模式的交互性,到使用HTML报告进行报告,Playwright使您能够构建稳定、可靠的测试,并提供出色的开发人员体验。
通过Playwright MCP,您正在与在真实浏览器中与您的应用程序交互、验证更改并自动运行测试的智能代理协作。GitHub Copilot编码代理利用Playwright MCP打开浏览器并验证分配给它的任务,使得维护高质量软件比以往任何时候都更容易。
无论是开始第一个测试还是管理大型套件,Playwright的工具都使您能够充满信心和速度地交付高质量软件。
准备好开始了吗?深入探索工具,并加入充满活力的Playwright社区,推动现代测试的边界。
立即安装Playwright MCP服务器,体验AI驱动自动化的端到端测试未来。
了解更多关于Azure应用测试的信息
有用链接
- Playwright文档
- Playwright GitHub仓库
- Playwright for VS Code扩展
- Playwright MCP文档
- GitHub Copilot编码代理
- Azure应用测试 - 云规模Playwright测试
- 10个MCP服务器入门