E2E 测试生成
为关键用户流程生成端到端测试(Playwright/Cypress)。
测试与审查高级
为什么
GitHub 2024 调查发现 92% 的美国受访者用 AI 编程工具生成测试用例,98% 的组织曾尝试用 AI 做测试。E2E 测试捕获单测/集成漏的 UI + API + DB 集成 bug。
AI 快速脚手架正常路径流程;你加关键断言。
何时使用
前 3-5 关键流程(登录、结账、搜索)用此。低风险 UI 跳过。
如何做
1. 选关键流程;用文字写为步骤。
2. 问:"这些步骤的 Playwright 测试;对可见 UI + URL + 关键数据断言"。
3. 对 staging 构建跑;用 waitFor 修 flaky,非 sleep。
4. 加到 CI PR 上(并行、分片)。
5. 保持套件小;E2E 慢。
示例
流程:登录 → 搜 "dune" → 加购物车 → 结账 → 确认页
test("购买一本书", async ({ page }) => {
await page.goto("/login"); await page.fill("#email", "[email protected]"); ...
await page.fill("#search", "dune"); await page.click("text=Add to cart");
await page.click("text=Checkout");
await expect(page).toHaveURL(/\/order\/\d+/);
await expect(page.locator("text=Confirmation")).toBeVisible();
});
常见问题
- ⚠Error: Cannot find module 'jest' / 'vitest' → 运行 `npm install --save-dev vitest`(或 jest);检查 package.json 测试脚本。
- ⚠错误:"Test timed out after 5000ms" → 调大 `testTimeout` 或 await 异步操作;网络调用常见。
- ⚠AssertionError: expected undefined to equal 'x' → mock 返回了 undefined;检查 mock 设置返回预期结构。
最佳实践
- ✓用 waitFor,绝不用 sleep,避免 flaky。
- ✓E2E 限顶部关键流程;CI 中并行。
- ✓用具体指标衡量结果(节省时间、缺陷率、测试覆盖率),使实践可被论证和改进。
常见问题解答
什么是E2E 测试生成?
为关键用户流程生成端到端测试(Playwright/Cypress)。 它可帮助开发者快速理解 E2E 测试生成 的核心价值与适用场景。
如何开始使用E2E 测试生成?
开始使用 E2E 测试生成,建议先掌握以下要点:选关键流程;用文字写为步骤。
E2E 测试生成 的常见误区有哪些?
使用 E2E 测试生成 时常遇到的问题包括:Error: Cannot find module 'jest' / 'vitest' → 运行 `npm install --save-dev vitest`(或 jest);检查 package.json 测试脚本。;错误:"Test timed out after 5000ms" → 调大 `testTimeout` 或 await 异步操作;网络调用常见。;AssertionError: expected undefined to equal 'x' → mock 返回了 undefined;检查 mock 设置返回预期结构。。
E2E 测试生成 的最佳实践是什么?
E2E 测试生成 的最佳实践包括:用 waitFor,绝不用 sleep,避免 flaky。;E2E 限顶部关键流程;CI 中并行。;用具体指标衡量结果(节省时间、缺陷率、测试覆盖率),使实践可被论证和改进。。
如何深入学习E2E 测试生成?
从官方文档入手,再在 GitHub 上搜索真实示例;先在小实验仓库验证模式,再应用到生产代码。