智教助手平台:完整初始化
- 前端:Vue3 + TS + Element Plus,24 个页面路由(课件/组题/教案/动画/思维导图/作文批改/命题/课堂/资源/社区等) - 后端:FastAPI + SQLAlchemy + SQLite,17 个路由模块,AI 服务层含降级模板 - AI:glm-5.x 推理模型已禁用思维链,确保输出真实内容 - 修复:ai_service 两处请求体注入 enable_thinking/thinking disabled - 测试账号:13900999999 / test1234
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
const { chromium } = require('playwright-core');
|
||||
const fs = require('fs');
|
||||
(async () => {
|
||||
const CHROME = String.raw`C:\Program Files\Google\Chrome\Application\chrome.exe`;
|
||||
const browser = await chromium.launch({ executablePath: CHROME, headless: true });
|
||||
const page = await browser.newPage({ viewport: { width: 1366, height: 850 } });
|
||||
const errors = [];
|
||||
page.on('console', m => { if (m.type() === 'error') errors.push(m.text()); });
|
||||
page.on('pageerror', e => errors.push('PAGEERROR: ' + e.message));
|
||||
|
||||
const base = 'http://127.0.0.1:8010';
|
||||
const loginRes = await fetch(base + '/api/auth/login', {
|
||||
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ phone: '13943441149', password: 'Test1234' })
|
||||
});
|
||||
const loginData = await loginRes.json();
|
||||
const token = loginData.data?.access_token || loginData.access_token;
|
||||
await page.goto('http://127.0.0.1:5175/login');
|
||||
await page.evaluate(t => { localStorage.setItem('access_token', t); localStorage.setItem('refresh_token', 'r'); }, token);
|
||||
await page.goto('http://127.0.0.1:5175/animation');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// open gallery via the tpl-btn
|
||||
await page.locator('.tpl-btn').first().click();
|
||||
await page.waitForTimeout(1500);
|
||||
|
||||
const cards = await page.locator('.tg-card').count();
|
||||
console.log('gallery cards:', cards);
|
||||
|
||||
const ours = ['勾股定理','单位圆','排序算法','DNA','牛顿第二','板块构造'];
|
||||
const results = [];
|
||||
const allCards = page.locator('.tg-card');
|
||||
for (let i = 0; i < cards; i++) {
|
||||
await allCards.nth(i).click();
|
||||
await page.waitForTimeout(700);
|
||||
const name = (await page.locator('.tg-main-head h3').textContent().catch(()=> '') || '').trim();
|
||||
const isOurs = ours.some(k => name.includes(k));
|
||||
if (isOurs) {
|
||||
const beforeErr = errors.length;
|
||||
const frame = page.frameLocator('.tg-preview-wrap iframe').first();
|
||||
let stageOk = false;
|
||||
try { stageOk = (await frame.locator('body').innerHTML({ timeout: 3000 }).catch(()=> '')).length > 200; } catch(e) {}
|
||||
await page.waitForTimeout(300);
|
||||
const newErr = errors.length - beforeErr;
|
||||
results.push({ name, stageOk, newErr });
|
||||
console.log(`[${name}] rendered=${stageOk} newErr=${newErr}`);
|
||||
}
|
||||
}
|
||||
|
||||
await page.screenshot({ path: '../audit_shots/_tpl_gallery.png' });
|
||||
console.log('TOTAL_CONSOLE_ERRORS:', errors.length);
|
||||
console.log('OURS_CHECKED:', results.length, 'ALL_RENDERED:', results.every(r => r.stageOk));
|
||||
if (errors.length) console.log('ERR_SAMPLES:', errors.slice(0,5));
|
||||
fs.writeFileSync('../audit_shots/_tpl_results.json', JSON.stringify({ totalCards: cards, errors: errors.slice(0,15), results }, null, 2));
|
||||
await browser.close();
|
||||
})();
|
||||
Reference in New Issue
Block a user