const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); const results = []; // 测试页面列表 const pages = [ { url: 'http://127.0.0.1:20199/', name: '首页' }, { url: 'http://127.0.0.1:20199/pages/queue/status/index', name: '公排状态页' }, { url: 'http://127.0.0.1:20199/pages/queue/history/index', name: '公排历史页' }, { url: 'http://127.0.0.1:20199/pages/queue/rules/index', name: '公排规则页' }, { url: 'http://127.0.0.1:20199/pages/assets/index/index', name: '我的资产页' }, { url: 'http://127.0.0.1:20199/pages/assets/points_detail/index', name: '积分明细页' }, { url: 'http://127.0.0.1:20199/pages/guide/hjf_intro/index', name: '引导页' }, ]; console.log('🧪 开始 E2E 页面测试...\n'); for (const p of pages) { try { await page.goto(p.url, { waitUntil: 'networkidle', timeout: 15000 }); const title = await page.title(); results.push({ name: p.name, status: '✅ PASS', title }); console.log(`✅ ${p.name}: ${title}`); } catch (e) { results.push({ name: p.name, status: '❌ FAIL', error: e.message }); console.log(`❌ ${p.name}: ${e.message}`); } } console.log('\n📊 测试结果汇总:'); console.log(` 通过: ${results.filter(r => r.status === '✅ PASS').length}/${pages.length}`); console.log(` 失败: ${results.filter(r => r.status === '❌ FAIL').length}/${pages.length}`); await browser.close(); process.exit(results.filter(r => r.status === '❌ FAIL').length > 0 ? 1 : 0); })();