6c8b31e38a
- Flyway V6:模型表、默认种子、ai_chat_session.model_id 回填 - 管理端 /api/admin/ai/models;用户端选模与新会话绑定 - 禁用模型后会话只读(5009);chat 按会话 modelCode 调 DashScope - 前端 AiModels 页、助手模型选择器与 localStorage - 单测、AiModelManagementApiIT、Playwright E2E;e2e Profile 关闭注解限流 - 技术实施文档与验收报告;移除过期冲突分析文档 Co-authored-by: Cursor <cursoragent@cursor.com>
Jog E2E(Playwright)
前置条件
- 线上 MySQL 已建库并授权(推荐隔离库):
CREATE DATABASE IF NOT EXISTS jog_test CHARACTER SET utf8mb4;
GRANT ALL PRIVILEGES ON jog_test.* TO 'jog'@'%';
FLUSH PRIVILEGES;
- 启动测试前设置(可选):
$env:MYSQL_DATABASE = "jog_test"
$env:DASHSCOPE_API_KEY = "你的百炼Key" # 浏览器 chat 已 Mock,可不设
若暂未建 jog_test,默认使用 jog 库(application-e2e.yml)。
-
管理员密码:应用启动后会被重置为
admin@123(见DatabaseInitializationVerifier)。 -
首次或改过后端代码:在仓库根目录执行
mvn -pl jog-admin -am install -Dmaven.frontend.skip=true -DskipTests,否则spring-boot:run可能加载.m2中旧版jog-module-blog(表现为/api/admin/ai/models404)。
测试模型
- 模型编码:
qwen3-vl-32b-thinking - 展示名称:
Qwen3 VL 32B Thinking
运行
cd e2e
npm install
npm run install:browsers
npm test
Playwright 会自动执行(首次较慢):
mvn -pl jog-admin -am install …+mvn -pl jog-admin spring-boot:run -Dspring-boot.run.profiles=e2enpm run dev(jog-frontend)
本地已手动启动 8080/5173 时,会复用现有进程(reuseExistingServer,勿设置 CI=true)。
用例
| 编号 | 文件 | 说明 |
|---|---|---|
| TC-AI-MODEL-E2E-18 | tests/ai-model-management.spec.js |
管理端 UI 上架模型 → 助手选模型、新会话、Mock 对话 |
| TC-AI-MODEL-E2E-19 | 同上 | 禁用模型 → 旧会话只读 |
e2e Profile 下 jog.rate-limit.enabled=false,避免注册/登录全局限流影响联调。
API 集成测试(Maven)
mvn test -pl jog-admin -am -Dmaven.frontend.skip=true -Dtest=AiModelManagementApiIT
Docker 可用时也可使用 Testcontainers(application-test + IntegrationTestContainers)。