首页
/ E2E Test Report

E2E Test Report

2026-09-04 16:47:33作者:董斯意

Date: YYYY-MM-DD HH:MM Duration: Xm Ys Status: PASSING / FAILING

Summary

  • Total: X | Passed: Y (Z%) | Failed: A | Flaky: B | Skipped: C

Failed Tests

test-name

File: tests/e2e/feature.spec.ts:45 Error: Expected element to be visible Screenshot: artifacts/failed.png Recommended Fix: [description]

Artifacts

  • HTML Report: playwright-report/index.html
  • Screenshots: artifacts/*.png
  • Videos: artifacts/videos/*.webm
  • Traces: artifacts/*.zip

模板设计上,“Summary”一行汇总总量/通过/失败/Flaky/跳过五档状态,其中把 **Flaky 单列**为独立计数,正对应上文的隔离策略——被 `fixme/skip` 隔离的用例不应混入 Failed;每个失败用例条目固定包含文件定位、错误信息、截图路径与修复建议四要素,使报告可直接转化为 Issue 清单。产物路径一栏与上文配置(`playwright-report/`、`artifacts/`、`artifacts/videos/`)完全对齐。

## 场景化扩展:Web3 钱包与关键资金流

技能文档最后给出两个高价值场景的完整用例。

**钱包/Web3 测试**——用 `addInitScript` 注入 mock 钱包 provider,绕开真实 MetaMask 扩展,让钱包连接流程可离线、可重复地测试:

```typescript
test('wallet connection', async ({ page, context }) => {
  // Mock wallet provider
  await context.addInitScript(() => {
    window.ethereum = {
      isMetaMask: true,
      request: async ({ method }) => {
        if (method === 'eth_requestAccounts')
          return ['0x1234567890123456789012345678901234567890']
        if (method === 'eth_chainId') return '0x1'
      }
    }
  })

  await page.goto('/')
  await page.locator('[data-testid="connect-wallet"]').click()
  await expect(page.locator('[data-testid="wallet-address"]')).toContainText('0x1234')
})

技巧核心:addInitScript 在任何页面脚本之前执行,注入的 window.ethereum 会在 DApp 检测注入钱包时被命中,从而把“连接钱包”这一依赖浏览器扩展的流程变成纯 Playwright 可测的场景。

金融/关键流测试——涉及真实资金的用例必须带环境护栏,并精确等待上链接口确认:

test('trade execution', async ({ page }) => {
  // Skip on production — real money
  test.skip(process.env.NODE_ENV === 'production', 'Skip on production')

  await page.goto('/markets/test-market')
  await page.locator('[data-testid="position-yes"]').click()
  await page.locator('[data-testid="trade-amount"]').fill('1.0')

  // Verify preview
  const preview = page.locator('[data-testid="trade-preview"]')
  await expect(preview).toContainText('1.0')

  // Confirm and wait for blockchain
  await page.locator('[data-testid="confirm-trade"]').click()
  await page.waitForResponse(
    resp => resp.url().includes('/api/trade') && resp.status() === 200,
    { timeout: 30000 }
  )

  await expect(page.locator('[data-testid="trade-success"]')).toBeVisible()
})
登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
904
1.82 K
docsdocs
暂无描述
Markdown
889
5.78 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
527
590
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.52 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.33 K
1.45 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.17 K
341