1 parent
3633fe1908
commit
a6b2bfd4dc
2 files changed
+17
-3
No files matched your search
+15
-2
@@ -1,11 +1,14 @@
|
||||
# 浏览器端到端验收
|
||||
|
||||
先在项目根目录执行 `npm ci` 安装锁定依赖,执行 `npm run build`,再执行 `npm test`。
|
||||
测试使用 Node 自带的 `node:test`,直接操作实际构建后的页面,不替换项目内部模块。
|
||||
测试使用 Node 自带的 `node:test`。浏览器场景直接操作实际构建后的页面,不替换项目内部模块;
|
||||
规则适配与随机密码另有公开模块入口的隔离失败模式测试,不能代替浏览器验收。
|
||||
|
||||
测试会自动启动两个仅监听 `127.0.0.1` 的独立进程:构建后的 Nuxt 预览服务和 HTTP 假后端。
|
||||
每个浏览器测试文件会自动启动两个仅监听 `127.0.0.1` 的独立进程:构建后的 Nuxt 预览服务和 HTTP 假后端。
|
||||
后端地址仅通过生产已有的 `NUXT_PUBLIC_API_BASE` 注入。不会读取 `.env`,不会请求生产服务;
|
||||
浏览器访问两个本地 origin 之外的任何 HTTP 地址都会被阻断并让场景失败。
|
||||
共享启动、登录、清单和清理逻辑位于 `tests/helpers/console-browser.mjs`;专项场景仅在已配置的
|
||||
后端 HTTP 边界提供响应,不替换应用内部函数或预置 JWT。
|
||||
|
||||
默认 Chrome 路径是 macOS 的 `/Applications/Google Chrome.app/Contents/MacOS/Google Chrome`。
|
||||
其他平台通过 `CHROME_PATH` 指定 Chromium/Chrome 可执行文件,或指定已安装的 Playwright Chromium:
|
||||
@@ -28,4 +31,14 @@ CHROME_PATH=/absolute/path/to/chrome npm test
|
||||
以及使用同一浏览器真实存储事件的双标签页退出同步;所有会话都来自实际登录或临时凭证入口,不预置 JWT。
|
||||
模板改写的回归场景还覆盖短信发送协议、60 秒倒计时、登录方式禁用配置及 SSH 新增/编辑保存/删除末页恢复。
|
||||
支付超时使用浏览器的外部时钟推进,不添加测试专用产品配置。假后端数据契约来自现有部署产物。
|
||||
|
||||
专项回归按行为分组:
|
||||
|
||||
- `review-routes.e2e.test.mjs`:安全组方向大小写、非法枚举整批拒绝;旧工单 query 切换后草稿重置且只操作新工单。
|
||||
- `review-purchase.e2e.test.mjs`:镜像订单未付复用、取消后重建、已付授权延迟不重复收费;级联候选与默认、结算、购物车恢复一致。
|
||||
- `review-fields.e2e.test.mjs`:常见 ASCII 规则本地拦截、PCRE 专有规则交后端校验;实例随机密码实际提交及安全源失效、无偏采样边界。
|
||||
- `review-theme.e2e.test.mjs`:认证页三态主题文案、持久化与跟随系统变化。
|
||||
|
||||
可针对单组执行,例如 `node --test tests/review-routes.e2e.test.mjs`;仍需先构建当前源码。
|
||||
随机密码场景只记录性质与是否一致,不把密码或安全随机值写入验收附件。
|
||||
真实服务器联调、真实支付渠道、短信/邮件投递、第三方 CAPTCHA 及完整安全挑战流程不在离线验收范围内。
|
||||
Reference in new issue
Block a user