feat: 添加管理后台页面和功能,优化测试和性能配置
refactor: 重构页面导航和滚动逻辑,提升用户体验 test: 更新测试配置和用例,增加覆盖率和稳定性 perf: 优化性能指标和阈值,适应开发环境需求 ci: 添加Lighthouse CI工作流,集成性能测试 docs: 更新API文档和健康检查端点 fix: 修复登录页面和表单提交问题 style: 调整响应式布局和可访问性改进 chore: 更新依赖项和脚本配置
This commit is contained in:
+15
-32
@@ -1,53 +1,36 @@
|
||||
import { chromium, FullConfig } from '@playwright/test';
|
||||
import { getEnvironment } from './src/config/environments';
|
||||
import { TestHistoryManager } from './src/utils/test-history';
|
||||
|
||||
const env = getEnvironment();
|
||||
const historyManager = new TestHistoryManager();
|
||||
|
||||
async function globalSetup(config: FullConfig) {
|
||||
console.log('🚀 开始E2E测试全局设置...');
|
||||
console.log('📍 Base URL:', env.baseURL);
|
||||
|
||||
async function globalSetup(_config: FullConfig) {
|
||||
const browser = await chromium.launch();
|
||||
const page = await browser.newPage();
|
||||
|
||||
|
||||
try {
|
||||
console.log('📝 访问登录页面...');
|
||||
await page.goto(`${env.baseURL}/admin/login`, { waitUntil: 'networkidle' });
|
||||
|
||||
console.log('⏳ 等待页面加载...');
|
||||
await page.waitForLoadState('domcontentloaded', { timeout: 10000 });
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
console.log('🔑 填写登录信息...');
|
||||
await page.waitForSelector('#email', { timeout: 10000 });
|
||||
await page.goto(`${env.baseURL}/admin/login`, { waitUntil: 'commit', timeout: 120000 });
|
||||
|
||||
await page.waitForSelector('#email', { timeout: 30000 });
|
||||
|
||||
await page.locator('#email').fill('admin@novalon.cn');
|
||||
await page.locator('#password').fill('admin123456');
|
||||
|
||||
console.log('🖱️ 点击登录按钮...');
|
||||
|
||||
await page.locator('button[type="submit"]').click();
|
||||
|
||||
console.log('⏳ 等待登录成功...');
|
||||
console.log('🔍 当前URL:', page.url());
|
||||
|
||||
|
||||
try {
|
||||
await page.waitForURL(/\/admin(?!\/login)/, { timeout: 15000 });
|
||||
console.log('✅ 登录成功,当前URL:', page.url());
|
||||
await page.waitForURL(/\/admin(?!\/login)/, { timeout: 30000 });
|
||||
} catch (error) {
|
||||
console.log('❌ 登录超时,当前URL:', page.url());
|
||||
console.log('📸 截图保存...');
|
||||
await page.screenshot({ path: 'test-results/login-failure.png', fullPage: true });
|
||||
throw error;
|
||||
}
|
||||
|
||||
console.log('💾 保存认证状态...');
|
||||
|
||||
await page.context().storageState({ path: '.auth/admin.json' });
|
||||
|
||||
console.log('✅ 全局设置完成');
|
||||
} catch (error) {
|
||||
console.error('❌ 全局设置失败:', error);
|
||||
await page.screenshot({ path: 'test-results/setup-error.png' });
|
||||
try {
|
||||
await page.screenshot({ path: 'test-results/setup-error.png' });
|
||||
} catch (screenshotError) {
|
||||
console.error('截图失败:', screenshotError);
|
||||
}
|
||||
throw error;
|
||||
} finally {
|
||||
await browser.close();
|
||||
|
||||
Reference in New Issue
Block a user