Files
multiAgentTry/frontend/tests/navigation.spec.ts
Claude Code dc398d7c7b 完整实现 Swarm 多智能体协作系统
- 新增 CLIPluginAdapter 统一接口 (backend/app/core/agent_adapter.py)
- 新增 LLM 服务层,支持 Anthropic/OpenAI/DeepSeek/Ollama (backend/app/services/llm_service.py)
- 新增 Agent 执行引擎,支持文件锁自动管理 (backend/app/services/agent_executor.py)
- 新增 NativeLLMAgent 原生 LLM 适配器 (backend/app/adapters/native_llm_agent.py)
- 新增进程管理器 (backend/app/services/process_manager.py)
- 新增 Agent 控制 API (backend/app/routers/agents_control.py)
- 新增 WebSocket 实时通信 (backend/app/routers/websocket.py)
- 更新前端 AgentsPage,支持启动/停止 Agent
- 测试通过:Agent 启动、批量操作、栅栏同步

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:32:11 +08:00

78 lines
3.1 KiB
TypeScript

import { test, expect } from '@playwright/test';
// 前端导航测试
test.describe('Swarm Command Center - 前端导航测试', () => {
const baseUrl = 'http://localhost:3000';
test.beforeEach(async ({ page }) => {
await page.goto(baseUrl);
});
test('页面标题正确显示', async ({ page }) => {
await expect(page).toHaveTitle(/Swarm/);
});
test('侧边栏导航显示正确', async ({ page }) => {
// 检查 Logo 和标题
await expect(page.locator('text=Swarm Center')).toBeVisible();
await expect(page.locator('text=多智能体协作系统')).toBeVisible();
// 检查导航链接
await expect(page.locator('text=仪表盘')).toBeVisible();
await expect(page.locator('text=Agent 管理')).toBeVisible();
await expect(page.locator('text=会议管理')).toBeVisible();
await expect(page.locator('text=资源监控')).toBeVisible();
await expect(page.locator('text=工作流')).toBeVisible();
await expect(page.locator('text=配置')).toBeVisible();
});
test('仪表盘页面加载', async ({ page }) => {
await expect(page.locator('h1:has-text("仪表盘")')).toBeVisible();
await expect(page.locator('text=系统概览与实时监控')).toBeVisible();
// 检查统计卡片
await expect(page.locator('text=Agent 总数')).toBeVisible();
await expect(page.locator('text=今日会议')).toBeVisible();
await expect(page.locator('text=文件锁')).toBeVisible();
await expect(page.locator('text=在线 Agent')).toBeVisible();
});
test('Agent 管理页面导航', async ({ page }) => {
await page.click('text=Agent 管理');
await expect(page).toHaveURL(/\/agents/);
await expect(page.locator('h1:has-text("Agent 管理")')).toBeVisible();
await expect(page.locator('button:has-text("注册 Agent")')).toBeVisible();
});
test('会议管理页面导航', async ({ page }) => {
await page.click('text=会议管理');
await expect(page).toHaveURL(/\/meetings/);
await expect(page.locator('h1:has-text("会议管理")')).toBeVisible();
await expect(page.locator('button:has-text("创建会议")')).toBeVisible();
});
test('资源监控页面导航', async ({ page }) => {
await page.click('text=资源监控');
await expect(page).toHaveURL(/\/resources/);
await expect(page.locator('h1:has-text("资源监控")')).toBeVisible();
// 检查标签页
await expect(page.locator('button:has-text("文件锁")')).toBeVisible();
await expect(page.locator('button:has-text("心跳状态")')).toBeVisible();
await expect(page.locator('button:has-text("Agent 状态")')).toBeVisible();
});
test('工作流页面导航', async ({ page }) => {
await page.click('text=工作流');
await expect(page).toHaveURL(/\/workflow/);
await expect(page.locator('h1:has-text("工作流")')).toBeVisible();
});
test('配置页面导航', async ({ page }) => {
await page.click('text=配置');
await expect(page).toHaveURL(/\/settings/);
await expect(page.locator('h1:has-text("系统配置")')).toBeVisible();
await expect(page.locator('text=API 基础地址')).toBeVisible();
});
});