Files
novalon-manage-system/novalon-manage-web/e2e/user-create-diagnostic-v2.spec.ts
T
张翔 be1c587dbf fix: 修复测试中操作admin用户导致后续测试失败的问题
- 修复密码哈希格式问题(从$2a$改为$2b$)
- 更新所有测试用例密码从Test@123改为admin123
- 修改测试2.3、2.5、2.6,避免操作admin用户(第1行)
- 在beforeEach中添加页面初始化,避免localStorage访问错误
- 添加测试数据清理机制
2026-04-04 13:01:38 +08:00

109 lines
3.6 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { LoginPage } from './pages/LoginPage';
import { UserManagementPage } from './pages/UserManagementPage';
test.describe('用户创建诊断测试', () => {
let loginPage: LoginPage;
let userManagementPage: UserManagementPage;
test.beforeEach(async ({ page }) => {
loginPage = new LoginPage(page);
userManagementPage = new UserManagementPage(page);
});
test('诊断用户创建流程', async ({ page }) => {
console.log('=== 开始诊断用户创建流程 ===');
// 登录
await loginPage.goto();
await loginPage.login('admin', 'admin123');
console.log('1. 登录成功');
// 导航到用户管理页面
await userManagementPage.goto();
await userManagementPage.waitForTableReady();
console.log('2. 导航到用户管理页面成功');
// 点击新增用户按钮
await userManagementPage.clickCreateUser();
console.log('3. 点击新增用户按钮成功');
// 生成唯一用户名
const uuid = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
const username = `diag_${uuid}`;
const userData = {
username: username,
password: 'admin123',
email: `${username}@test.com`,
phone: '13800138000',
nickname: `诊断用户${Date.now()}`
};
console.log('4. 准备创建用户:', userData);
// 填写表单
await userManagementPage.fillUserForm(userData);
console.log('5. 填写表单成功');
// 监听API响应
const [response] = await Promise.all([
page.waitForResponse(resp =>
resp.url().includes('/api/users') &&
resp.request().method() === 'POST',
{ timeout: 15000 }
).catch(err => {
console.log(' ❌ 等待API响应超时:', err.message);
return null;
}),
userManagementPage.submitForm()
]);
console.log('6. 提交表单');
if (response) {
console.log(' ✅ 捕获到API响应');
console.log(' - 状态码:', response.status());
console.log(' - URL:', response.url());
try {
const responseBody = await response.json();
console.log(' - 响应体:', JSON.stringify(responseBody, null, 2));
} catch (err) {
console.log(' - 无法解析响应体:', err.message);
}
} else {
console.log(' ⚠️ 没有捕获到API响应');
}
// 等待成功消息
const success = await userManagementPage.waitForSuccessMessage(15000);
console.log('7. 等待成功消息:', success ? '✅ 成功' : '❌ 失败');
// 检查页面状态
await page.screenshot({ path: `test-results/diagnostic-after-submit-${Date.now()}.png` });
console.log('8. 截图已保存');
// 检查是否有错误消息
const errorMessages = await page.locator('.el-message--error').allTextContents();
if (errorMessages.length > 0) {
console.log(' ⚠️ 发现错误消息:', errorMessages);
}
// 检查对话框是否关闭
const dialogVisible = await page.locator('.el-dialog').isVisible();
console.log('9. 对话框状态:', dialogVisible ? '仍然打开' : '已关闭');
// 搜索新创建的用户
await userManagementPage.search(username);
await page.waitForTimeout(2000);
const found = await userManagementPage.containsText(username);
console.log('10. 搜索新用户:', found ? '✅ 找到' : '❌ 未找到');
console.log('=== 诊断完成 ===');
expect(success).toBeTruthy();
expect(found).toBeTruthy();
});
});