Files
everything-is-suitable/everything-is-suitable-admin/e2e/performance/api-performance.spec.ts
T
张翔 08ea5fbe98 feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
2026-03-28 14:37:29 +08:00

110 lines
4.2 KiB
TypeScript

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);
});
});