import { test, expect } from '@playwright/test'; import { LoginPage } from './pages/LoginPage'; import { DashboardPage } from './pages/DashboardPage'; import { UserManagementPage } from './pages/UserManagementPage'; test.describe('E2E安全测试', () => { test('SEC-001: XSS攻击防护测试', async ({ page }) => { const loginPage = new LoginPage(page); const dashboardPage = new DashboardPage(page); const userManagementPage = new UserManagementPage(page); await test.step('1. 管理员登录', async () => { await loginPage.goto(); await loginPage.login('admin', 'admin123'); await page.waitForURL(/.*dashboard/); }); await test.step('2. 导航到用户管理', async () => { await dashboardPage.navigateToUserManagement(); await userManagementPage.clickCreateUser(); }); await test.step('3. 测试XSS payload防护', async () => { const xssPayloads = [ '', '', '', 'javascript:alert("XSS")', '' ]; for (const payload of xssPayloads) { const timestamp = Date.now(); const userData = { username: `xss_test_${timestamp}`, nickname: payload, email: `xss_${timestamp}@example.com`, phone: '13800138000', password: 'Test123!@#', confirmPassword: 'Test123!@#', }; await userManagementPage.fillUserForm(userData); await userManagementPage.submitForm(); await page.waitForTimeout(1000); if (await userManagementPage.isSuccessMessageVisible()) { await userManagementPage.clickEditButton(1); await page.waitForTimeout(500); const pageContent = await page.content(); expect(pageContent).not.toContain('