feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
import { test, expect, Page } from '@playwright/test';
|
||||
import { LoginPage } from '../pages/login-page';
|
||||
import { DashboardPage } from '../pages/dashboard-page';
|
||||
import { UserManagementPage } from '../pages/user-management-page';
|
||||
import { testConfig } from '../core/test-config';
|
||||
import { PerformanceMetrics, PerformanceTestHelper } from '../helpers/performance-helper';
|
||||
|
||||
test.describe.configure({
|
||||
mode: 'serial',
|
||||
timeout: 120000
|
||||
});
|
||||
|
||||
test.describe('性能测试 - API响应性能', () => {
|
||||
const metrics = new PerformanceMetrics();
|
||||
const helper = new PerformanceTestHelper();
|
||||
|
||||
test.afterAll(() => {
|
||||
metrics.printReport();
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
const loginPage = new LoginPage(page);
|
||||
await page.goto(testConfig.getBaseURL());
|
||||
await loginPage.login('admin', 'admin123');
|
||||
});
|
||||
|
||||
test('PT-006: 用户登录API性能', async ({ page }) => {
|
||||
await helper.clearCacheAndCookies(page);
|
||||
|
||||
const responseTime = await helper.measureApiCall(page, async () => {
|
||||
await page.goto(testConfig.getBaseURL());
|
||||
const loginPage = new LoginPage(page);
|
||||
await loginPage.login('admin', 'admin123');
|
||||
});
|
||||
|
||||
metrics.recordMetric('用户登录API响应时间', responseTime);
|
||||
expect(responseTime).toBeLessThan(2000);
|
||||
});
|
||||
|
||||
test('PT-007: 获取用户列表API性能', async ({ page }) => {
|
||||
const responseTime = await helper.measureApiCall(page, async () => {
|
||||
await page.goto(`${testConfig.getBaseURL()}/users`);
|
||||
await page.waitForSelector('[data-testid="user-table"]');
|
||||
});
|
||||
|
||||
metrics.recordMetric('获取用户列表API响应时间', responseTime);
|
||||
expect(responseTime).toBeLessThan(1500);
|
||||
});
|
||||
|
||||
test('PT-008: 创建用户API性能', async ({ page }) => {
|
||||
const userManagementPage = new UserManagementPage(page);
|
||||
const testUsername = `perfuser_${Date.now()}`;
|
||||
|
||||
const responseTime = await helper.measureApiCall(page, async () => {
|
||||
await page.goto(`${testConfig.getBaseURL()}/users`);
|
||||
await userManagementPage.clickAddUser();
|
||||
await userManagementPage.fillUserForm({
|
||||
username: testUsername,
|
||||
email: `perfuser_${Date.now()}@example.com`,
|
||||
password: 'Test@123456',
|
||||
confirmPassword: 'Test@123456',
|
||||
role: 'USER',
|
||||
status: 'ACTIVE'
|
||||
});
|
||||
await userManagementPage.submitUserForm();
|
||||
await page.waitForSelector('.ant-message-success');
|
||||
});
|
||||
|
||||
metrics.recordMetric('创建用户API响应时间', responseTime);
|
||||
expect(responseTime).toBeLessThan(2000);
|
||||
});
|
||||
|
||||
test('PT-009: 黄历查询API性能', async ({ page }) => {
|
||||
const responseTime = await helper.measureApiCall(page, async () => {
|
||||
await page.goto(`${testConfig.getBaseURL()}/almanac`);
|
||||
await page.fill('[data-testid="date-picker"]', '2024-01-01');
|
||||
await page.click('[data-testid="query-button"]');
|
||||
await page.waitForSelector('[data-testid="almanac-result"]');
|
||||
});
|
||||
|
||||
metrics.recordMetric('黄历查询API响应时间', responseTime);
|
||||
expect(responseTime).toBeLessThan(1500);
|
||||
});
|
||||
|
||||
test('PT-010: 运势查询API性能', async ({ page }) => {
|
||||
const responseTime = await helper.measureApiCall(page, async () => {
|
||||
await page.goto(`${testConfig.getBaseURL()}/fortune`);
|
||||
await page.fill('[data-testid="fortune-date"]', '2024-01-15');
|
||||
await page.click('[data-testid="query-fortune-button"]');
|
||||
await page.waitForSelector('[data-testid="daily-fortune"]');
|
||||
});
|
||||
|
||||
metrics.recordMetric('运势查询API响应时间', responseTime);
|
||||
expect(responseTime).toBeLessThan(2000);
|
||||
});
|
||||
|
||||
test('PT-011: 紫微斗数生成API性能', async ({ page }) => {
|
||||
const responseTime = await helper.measureApiCall(page, async () => {
|
||||
await page.goto(`${testConfig.getBaseURL()}/ziwei`);
|
||||
await page.fill('[data-testid="birth-date"]', '1990-05-15');
|
||||
await page.fill('[data-testid="birth-time"]', '08:30');
|
||||
await page.click('[data-testid="gender-male"]');
|
||||
await page.click('[data-testid="generate-chart-button"]');
|
||||
await page.waitForSelector('[data-testid="ziwei-chart"]');
|
||||
});
|
||||
|
||||
metrics.recordMetric('紫微斗数生成API响应时间', responseTime);
|
||||
expect(responseTime).toBeLessThan(3000);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user