新增性能基准测试、安全验证、国际化完整性验证等专项测试; 修复 E2E 测试选择器与当前 UI 不匹配问题; 补充多语言 locale 缺失的 key; 更新 Playwright 配置支持跨浏览器测试; 同步更新测试报告与 README 进度章节。 单元测试 408/408 通过,E2E 测试 39/39 通过(4 种浏览器), 专项测试 47/47 通过,整体覆盖率 77.5%。
57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('黄历搜索功能E2E测试', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/#/pages/almanac-search/index');
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForTimeout(1000);
|
|
});
|
|
|
|
test.describe('TC-SEARCH-001: 页面结构', () => {
|
|
test('应该显示页面标题', async ({ page }) => {
|
|
const pageTitle = page.locator('.page-title')
|
|
await expect(pageTitle).toBeVisible()
|
|
})
|
|
|
|
test('应该显示搜索条件面板', async ({ page }) => {
|
|
const pageContent = page.locator('.page-content')
|
|
await expect(pageContent).toBeVisible()
|
|
})
|
|
|
|
test('应该显示底部导航', async ({ page }) => {
|
|
const bottomNav = page.locator('.page')
|
|
await expect(bottomNav).toBeVisible()
|
|
})
|
|
})
|
|
|
|
test.describe('TC-SEARCH-002: 空状态显示', () => {
|
|
test('初始状态应显示空状态', async ({ page }) => {
|
|
await page.waitForTimeout(1000)
|
|
// 未搜索时显示 EmptyState 或空内容
|
|
const emptyState = page.locator('.page-content')
|
|
await expect(emptyState).toBeVisible()
|
|
})
|
|
})
|
|
|
|
test.describe('TC-SEARCH-003: 响应式设计', () => {
|
|
test('应该在移动端正常显示', async ({ page }) => {
|
|
await page.setViewportSize({ width: 375, height: 667 });
|
|
await page.reload();
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForTimeout(1000);
|
|
|
|
const pageTitle = page.locator('.page-title')
|
|
await expect(pageTitle).toBeVisible()
|
|
})
|
|
|
|
test('应该在桌面端正常显示', async ({ page }) => {
|
|
await page.setViewportSize({ width: 1920, height: 1080 });
|
|
await page.reload();
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForTimeout(1000);
|
|
|
|
const pageTitle = page.locator('.page-title')
|
|
await expect(pageTitle).toBeVisible()
|
|
})
|
|
})
|
|
}) |