test(e2e): add GA4 tracking, mobile, user journey tests and update visual baselines

- Add GA4 event tracking E2E tests (4 cases: page view, form submit, button click, product page)
- Add mobile-specific E2E tests (16 cases: navigation, form, product browsing)
- Add user journey tests (UJ-01: homepage to contact, UJ-02: product discovery)
- Fix E2E test selectors and assertions for consistency
- Update visual regression baselines across all browsers (chromium/firefox/webkit)
- Update Playwright config for new test files
This commit is contained in:
2026-07-31 20:24:57 +08:00
parent dd088a5ee1
commit 3e629bd9ee
27 changed files with 964 additions and 58 deletions
+7 -7
View File
@@ -101,7 +101,7 @@ async function safeGoto(page: Page, path: string, maxRetries = 2): Promise<void>
}
}
test.describe('P1: 品牌视觉审计 - 全站文本扫描', () => {
test.describe('P1: 品牌视觉审计 - 全站文本扫描', { tag: '@regression' }, () => {
TEST_PAGES.forEach(({ path, name }) => {
test(`${name} (${path}) - 不应包含可见的 "novalon" 字样`, async ({ page }) => {
@@ -290,7 +290,7 @@ test.describe('P1: 品牌视觉审计 - 全站文本扫描', () => {
});
});
test.describe('P1: 品牌视觉审计 - 关键位置验证', () => {
test.describe('P1: 品牌视觉审计 - 关键位置验证', { tag: '@regression' }, () => {
test('Header Logo 应显示 "睿新致远" 品牌', async ({ page }) => {
// 使用安全导航
@@ -414,7 +414,7 @@ test.describe('P1: 品牌视觉审计 - 关键位置验证', () => {
});
});
test.describe('P1: 品牌视觉审计 - SVG Logo 详细检查', () => {
test.describe('P1: 品牌视觉审计 - SVG Logo 详细检查', { tag: '@regression' }, () => {
test('Logo SVG 文件不应包含 "NOVALON" 英文文本', async ({ page }) => {
await safeGoto(page, '/');
@@ -552,7 +552,7 @@ test.describe('P1: 品牌视觉审计 - SVG Logo 详细检查', () => {
});
});
test.describe('P1: 品牌视觉审计 - 交互状态一致性', () => {
test.describe('P1: 品牌视觉审计 - 交互状态一致性', { tag: '@regression' }, () => {
test('导航链接悬停状态不显示错误品牌', async ({ page }) => {
await safeGoto(page, '/');
@@ -632,7 +632,7 @@ test.describe('P1: 品牌视觉审计 - 交互状态一致性', () => {
});
});
test.describe('P1: 品牌视觉审计 - 响应式布局验证', () => {
test.describe('P1: 品牌视觉审计 - 响应式布局验证', { tag: '@regression' }, () => {
const viewports = [
{ name: 'Desktop XL', width: 1920, height: 1080 },
@@ -701,7 +701,7 @@ test.describe('P1: 品牌视觉审计 - 响应式布局验证', () => {
});
});
test.describe('P1: 品牌视觉审计 - 特殊场景覆盖', () => {
test.describe('P1: 品牌视觉审计 - 特殊场景覆盖', { tag: '@regression' }, () => {
test('404 错误页面品牌显示正常', async ({ page }) => {
// 访问一个不存在的页面
@@ -775,7 +775,7 @@ test.describe('P1: 品牌视觉审计 - 特殊场景覆盖', () => {
});
});
test.describe('P1: 品牌视觉审计 - 性能与截图基线', () => {
test.describe('P1: 品牌视觉审计 - 性能与截图基线', { tag: '@regression' }, () => {
test('品牌元素加载性能', async ({ page }) => {
const startTime = Date.now();