be5d5ede90
refactor: 重构后端查询逻辑和API响应处理 fix: 修复用户角色更新和文件上传问题 test: 添加前端性能测试脚本和E2E测试用例 chore: 更新依赖版本和配置文件 docs: 添加环境检查脚本和测试文档 style: 统一表格标签样式和路由命名 perf: 优化前端页面加载速度和响应时间
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { LoginPage } from './pages/LoginPage';
|
|
import { DashboardPage } from './pages/DashboardPage';
|
|
|
|
test.describe('用户认证 E2E 测试', () => {
|
|
let loginPage: LoginPage;
|
|
let dashboardPage: DashboardPage;
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
loginPage = new LoginPage(page);
|
|
dashboardPage = new DashboardPage(page);
|
|
await loginPage.goto();
|
|
});
|
|
|
|
test('成功登录流程', async ({ page }) => {
|
|
await expect(page).toHaveTitle(/登录/);
|
|
|
|
await loginPage.login('admin', 'admin123');
|
|
|
|
await expect(page).toHaveURL(/.*dashboard/);
|
|
const username = await dashboardPage.getUsername();
|
|
expect(username).toContain('admin');
|
|
});
|
|
|
|
test('登录失败 - 无效凭证', async ({ page }) => {
|
|
await loginPage.login('invalid', 'invalid');
|
|
|
|
await page.waitForTimeout(2000);
|
|
|
|
await expect(page).not.toHaveURL(/.*dashboard/);
|
|
|
|
const currentUrl = page.url();
|
|
expect(currentUrl).toContain('/login');
|
|
});
|
|
|
|
test('登录失败 - 缺少必填字段', async ({ page }) => {
|
|
await loginPage.usernameInput.fill('admin');
|
|
await loginPage.loginButton.click();
|
|
|
|
const errorMessage = await loginPage.getErrorMessage();
|
|
expect(errorMessage).toBeTruthy();
|
|
});
|
|
|
|
test('登出流程', async ({ page }) => {
|
|
await loginPage.login('admin', 'admin123');
|
|
|
|
await loginPage.logout();
|
|
|
|
await expect(page).toHaveURL(/.*login/);
|
|
await expect(page).toHaveTitle(/登录/);
|
|
});
|
|
|
|
test('登录后可以访问主要菜单', async ({ page }) => {
|
|
await loginPage.login('admin', 'admin123');
|
|
|
|
await dashboardPage.navigateToUserManagement();
|
|
await expect(page).toHaveURL(/.*users/);
|
|
|
|
await dashboardPage.navigateToRoleManagement();
|
|
await expect(page).toHaveURL(/.*roles/);
|
|
|
|
await dashboardPage.navigateToMenuManagement();
|
|
await expect(page).toHaveURL(/.*menus/);
|
|
|
|
await dashboardPage.navigateToSystemConfig();
|
|
await expect(page).toHaveURL(/.*sysconfig/);
|
|
});
|
|
});
|