我为SPA编写自动化测试的经验
摘要
作者分享了他们使用Playwright为单页应用构建自动化测试套件的经验,强调了端到端测试、数据隔离和模拟外部服务。
<p><a href="https://lobste.rs/s/vlywx2/my_experience_writing_automated_tests">评论</a></p>
查看缓存全文
缓存时间: 2026/09/29 07:58
([0-9]{6})<\/h2>/.exec(email.html_part); expect(code_match).toBeTruthy(); return code_match[1]; }; ```
该 API 路由在生产构建中被禁用。### 模拟鼠标移动和点击
我最终写出了这样的代码:
```
... // 等待播放器加载完成
await expect(page.getByRole("button", { name: "Play" })).toBeEnabled();
await page.mouse.move(800, 300);
await page.mouse.down();
await page.mouse.move(700, 300);
await new Promise((r) => setTimeout(r, 100));
await page.mouse.move(700, 300);
await page.mouse.up();
await page.getByRole("button", { name: "Select" }).click();
// 滚动
await page.mouse.move(800, 300);
await page.mouse.down();
await page.mouse.move(600, 300);
await new Promise((r) => setTimeout(r, 100));
await page.mouse.move(600, 300);
await page.mouse.up();
await page.getByRole("button", { name: "Create a clip" }).click();
...
```
你可能觉得这段代码不够优雅,但它测试了一个我绝对不想破坏的重要功能。而且信不信由你,尽管用了`setTimeout()`,测试结果却出奇地稳定可靠!## 待改进之处
目前尚未统计测试覆盖率🙃。不过,最关键的用户流程以及所有重要功能的"主干路径"都已得到测试。我不太在意是否覆盖了冷门代码路径——只要确保没有关键 bug 就行。我非常希望能在 CI 中将`retries`设为零,我觉得离这个目标已经不远了。只是现在还没动力去处理!---
1. 实际上,Réécoute 也*同时*采用服务端渲染,以提升速度、优化 SEO,并兼容少数禁用 JavaScript 浏览的极客用户。不过,其核心功能必须依赖客户端渲染才能使用。
2. 我能确定当初选择 socat 是自己的决定——这里可没有任何 LLM 参与!这正是一个本该添加注释的绝佳案例...
相似文章
@kettanaito:我很激动地宣布“React端到端测试实战Playwright”!完成你的测试之旅,学习如何使用Playwright测试整个应用。
宣布一门关于使用Playwright进行React端到端测试的课程,涵盖浏览器自动化、用户旅程、认证、搜索、测试设置和调试技巧。
@playwrightweb:Playwright 的组件测试有了新形态:stories 与 galleries。一个 story 将你的组件封装在一个场景中——props、providers、mock data……
Playwright 正在引入一种新的组件测试方式,即“stories 与 galleries”——story 在 *.story.tsx 文件中将组件封装为一个场景(props、providers、mock data),而 gallery 页面则由你自己的开发服务器提供,按需渲染各种框架中的 stories。欢迎对实验性的 CT 包提供反馈。
@freeCodeCamp:测试是帮助你在发布新功能后保持软件可靠性的关键。在本课程中,Beau 将教你软件…
freeCodeCamp 宣布推出一个关于使用 Playwright 进行软件测试的综合课程,涵盖测试金字塔、TDD、API 测试等基础知识,以及像 KaneAI 这样的 AI 驱动工具。
@svpino: 任何曾经测试过网站的人的梦想。为UI编写自动化测试是最难的事情之一……
一项新工具声称能够以100倍的速度编写和运行网页(以及iOS/Android应用)的自动化UI测试。
@svpino: 与其手动查看AI生成的代码,不如花时间制定一个计划来验证系统是否按预期运行…
这篇文章提倡使用Replay QA对Web应用程序进行自动化测试,特别是针对AI生成的代码,强调了其易用性以及持续质量保证和根本原因分析等特性。