fix: 修复测试中操作admin用户导致后续测试失败的问题
- 修复密码哈希格式问题(从$2a$改为$2b$) - 更新所有测试用例密码从Test@123改为admin123 - 修改测试2.3、2.5、2.6,避免操作admin用户(第1行) - 在beforeEach中添加页面初始化,避免localStorage访问错误 - 添加测试数据清理机制
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
public class GenerateHash {
|
||||
public static void main(String[] args) {
|
||||
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(12);
|
||||
String password = "admin123";
|
||||
String hash = encoder.encode(password);
|
||||
System.out.println("Password: " + password);
|
||||
System.out.println("Hash: " + hash);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
public class PasswordTest {
|
||||
public static void main(String[] args) {
|
||||
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(12);
|
||||
|
||||
String hash = "$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C";
|
||||
|
||||
// 测试常见密码
|
||||
String[] passwords = {"admin", "Admin@123", "Test@123", "password", "123456", "admin123"};
|
||||
|
||||
for (String password : passwords) {
|
||||
boolean matches = encoder.matches(password, hash);
|
||||
System.out.println(password + ": " + matches);
|
||||
}
|
||||
|
||||
// 生成新的哈希
|
||||
String newHash = encoder.encode("Test@123");
|
||||
System.out.println("\nNew hash for 'Test@123': " + newHash);
|
||||
}
|
||||
}
|
||||
@@ -13,12 +13,12 @@ VALUES
|
||||
-- BCrypt哈希值对应明文密码: admin123
|
||||
INSERT INTO sys_user (id, username, password, email, phone, nickname, status, create_by, update_by)
|
||||
VALUES
|
||||
(1, 'admin', '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C', 'admin@novalon.com', '13800138000', '超级管理员', 1, 'system', 'system'),
|
||||
(2, 'testadmin', '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C', 'testadmin@novalon.com', '13800138001', '测试管理员', 1, 'system', 'system'),
|
||||
(3, 'normaluser', '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C', 'normaluser@novalon.com', '13800138002', '普通用户', 1, 'system', 'system'),
|
||||
(4, 'guestuser', '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C', 'guestuser@novalon.com', '13800138003', '访客用户', 1, 'system', 'system'),
|
||||
(5, 'disableduser', '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C', 'disableduser@novalon.com', '13800138004', '禁用用户', 0, 'system', 'system'),
|
||||
(10, 'e2e_test_user', '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C', 'e2e@test.com', '13900139000', 'E2E测试用户', 1, 'system', 'system');
|
||||
(1, 'admin', '$2b$12$iu5PcPjmZPfp30E66v08gu.iaBeB4CgtkE1VeFtldksmdWVzgPrzu', 'admin@novalon.com', '13800138000', '超级管理员', 1, 'system', 'system'),
|
||||
(2, 'testadmin', '$2b$12$iu5PcPjmZPfp30E66v08gu.iaBeB4CgtkE1VeFtldksmdWVzgPrzu', 'testadmin@novalon.com', '13800138001', '测试管理员', 1, 'system', 'system'),
|
||||
(3, 'normaluser', '$2b$12$iu5PcPjmZPfp30E66v08gu.iaBeB4CgtkE1VeFtldksmdWVzgPrzu', 'normaluser@novalon.com', '13800138002', '普通用户', 1, 'system', 'system'),
|
||||
(4, 'guestuser', '$2b$12$iu5PcPjmZPfp30E66v08gu.iaBeB4CgtkE1VeFtldksmdWVzgPrzu', 'guestuser@novalon.com', '13800138003', '访客用户', 1, 'system', 'system'),
|
||||
(5, 'disableduser', '$2b$12$iu5PcPjmZPfp30E66v08gu.iaBeB4CgtkE1VeFtldksmdWVzgPrzu', 'disableduser@novalon.com', '13800138004', '禁用用户', 0, 'system', 'system'),
|
||||
(10, 'e2e_test_user', '$2b$12$iu5PcPjmZPfp30E66v08gu.iaBeB4CgtkE1VeFtldksmdWVzgPrzu', 'e2e@test.com', '13900139000', 'E2E测试用户', 1, 'system', 'system');
|
||||
|
||||
-- 为用户分配角色
|
||||
INSERT INTO user_role (user_id, role_id, created_by)
|
||||
|
||||
@@ -23,7 +23,7 @@ test.describe('登录诊断测试', () => {
|
||||
console.log(` - 登录按钮: ${loginButtonVisible ? '可见' : '不可见'}`);
|
||||
|
||||
await loginPage.usernameInput.fill('admin');
|
||||
await loginPage.passwordInput.fill('Test@123');
|
||||
await loginPage.passwordInput.fill('admin123');
|
||||
console.log('4. 已填写用户名和密码');
|
||||
|
||||
await page.screenshot({ path: 'test-results/diagnostic/02-filled-form.png', fullPage: true });
|
||||
|
||||
@@ -7,7 +7,7 @@ test.describe('登录表单验证测试', () => {
|
||||
|
||||
// 使用fill方法填充
|
||||
await page.locator('input[placeholder="请输入用户名"]').fill('admin');
|
||||
await page.locator('input[placeholder="请输入密码"]').fill('Test@123');
|
||||
await page.locator('input[placeholder="请输入密码"]').fill('admin123');
|
||||
|
||||
// 检查input元素的值
|
||||
const usernameValue = await page.locator('input[placeholder="请输入用户名"]').inputValue();
|
||||
|
||||
@@ -123,7 +123,7 @@ async function cleanupTestData(): Promise<void> {
|
||||
},
|
||||
body: JSON.stringify({
|
||||
username: 'admin',
|
||||
password: 'Test@123'
|
||||
password: 'admin123'
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
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);
|
||||
|
||||
// 确保页面已经导航到正确的URL,避免localStorage访问错误
|
||||
await page.goto('/');
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
});
|
||||
|
||||
test('测试1: 登录并查询用户列表', async ({ page }) => {
|
||||
console.log('=== 测试1: 登录并查询用户列表 ===');
|
||||
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'admin123');
|
||||
|
||||
const currentUrl = page.url();
|
||||
console.log('当前URL:', currentUrl);
|
||||
|
||||
const token = await page.evaluate(() => localStorage.getItem('token'));
|
||||
console.log('Token:', token ? '存在' : '不存在');
|
||||
|
||||
await userManagementPage.goto();
|
||||
await userManagementPage.waitForTableReady();
|
||||
|
||||
const userCount = await userManagementPage.getUserCount();
|
||||
console.log('用户数量:', userCount);
|
||||
|
||||
expect(userCount).toBeGreaterThan(0);
|
||||
console.log('✅ 测试1通过\n');
|
||||
});
|
||||
|
||||
test('测试2: 再次登录并创建用户', async ({ page }) => {
|
||||
console.log('=== 测试2: 再次登录并创建用户 ===');
|
||||
|
||||
// 检查localStorage状态
|
||||
const tokenBefore = await page.evaluate(() => localStorage.getItem('token'));
|
||||
console.log('测试前Token:', tokenBefore ? '存在' : '不存在');
|
||||
|
||||
await loginPage.goto();
|
||||
console.log('导航到登录页面');
|
||||
|
||||
const urlAfterGoto = page.url();
|
||||
console.log('导航后URL:', urlAfterGoto);
|
||||
|
||||
// 如果已经有token,应该会自动跳转
|
||||
if (tokenBefore) {
|
||||
console.log('检测到已有token,等待自动跳转...');
|
||||
await page.waitForTimeout(3000);
|
||||
const urlAfterWait = page.url();
|
||||
console.log('等待后URL:', urlAfterWait);
|
||||
}
|
||||
|
||||
await loginPage.login('admin', 'admin123');
|
||||
|
||||
const currentUrl = page.url();
|
||||
console.log('登录后URL:', currentUrl);
|
||||
|
||||
const tokenAfter = await page.evaluate(() => localStorage.getItem('token'));
|
||||
console.log('登录后Token:', tokenAfter ? '存在' : '不存在');
|
||||
|
||||
await userManagementPage.goto();
|
||||
await userManagementPage.waitForTableReady();
|
||||
|
||||
const uuid = Math.random().toString(36).substring(2, 15);
|
||||
const username = `test_${uuid}`;
|
||||
|
||||
await userManagementPage.clickCreateUser();
|
||||
await userManagementPage.fillUserForm({
|
||||
username: username,
|
||||
password: 'admin123',
|
||||
email: `${username}@test.com`,
|
||||
phone: '13800138000',
|
||||
nickname: `测试用户${Date.now()}`
|
||||
});
|
||||
await userManagementPage.submitForm();
|
||||
|
||||
const success = await userManagementPage.waitForSuccessMessage();
|
||||
console.log('创建用户:', success ? '成功' : '失败');
|
||||
|
||||
expect(success).toBeTruthy();
|
||||
console.log('✅ 测试2通过\n');
|
||||
});
|
||||
|
||||
test('测试3: 第三次登录', async ({ page }) => {
|
||||
console.log('=== 测试3: 第三次登录 ===');
|
||||
|
||||
const tokenBefore = await page.evaluate(() => localStorage.getItem('token'));
|
||||
console.log('测试前Token:', tokenBefore ? '存在' : '不存在');
|
||||
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'admin123');
|
||||
|
||||
const currentUrl = page.url();
|
||||
console.log('登录后URL:', currentUrl);
|
||||
|
||||
const tokenAfter = await page.evaluate(() => localStorage.getItem('token'));
|
||||
console.log('登录后Token:', tokenAfter ? '存在' : '不存在');
|
||||
|
||||
expect(currentUrl).not.toContain('/login');
|
||||
console.log('✅ 测试3通过\n');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,117 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
test.describe('登录诊断测试', () => {
|
||||
test('诊断登录流程', async ({ page }) => {
|
||||
console.log('=== 开始诊断登录流程 ===');
|
||||
|
||||
// 导航到登录页面
|
||||
await page.goto('/login');
|
||||
console.log('1. 导航到登录页面');
|
||||
|
||||
// 等待页面加载完成
|
||||
await page.waitForLoadState('networkidle');
|
||||
console.log('2. 页面加载完成');
|
||||
|
||||
// 监听API响应
|
||||
const [response] = await Promise.all([
|
||||
page.waitForResponse(resp =>
|
||||
resp.url().includes('/api/auth/login') &&
|
||||
resp.request().method() === 'POST',
|
||||
{ timeout: 15000 }
|
||||
).catch(err => {
|
||||
console.log(' ❌ 等待登录API响应超时:', err.message);
|
||||
return null;
|
||||
}),
|
||||
(async () => {
|
||||
// 填写登录表单
|
||||
await page.fill('input[placeholder="请输入用户名"]', 'admin');
|
||||
console.log('3. 填写用户名: admin');
|
||||
|
||||
await page.fill('input[placeholder="请输入密码"]', 'admin123');
|
||||
console.log('4. 填写密码: admin123');
|
||||
|
||||
// 点击登录按钮
|
||||
await page.click('button:has-text("登录")');
|
||||
console.log('5. 点击登录按钮');
|
||||
})()
|
||||
]);
|
||||
|
||||
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));
|
||||
|
||||
// 检查响应格式
|
||||
if (responseBody.token) {
|
||||
console.log(' ✅ 响应包含token');
|
||||
} else {
|
||||
console.log(' ❌ 响应不包含token');
|
||||
}
|
||||
|
||||
if (responseBody.userId) {
|
||||
console.log(' ✅ 响应包含userId:', responseBody.userId);
|
||||
} else {
|
||||
console.log(' ⚠️ 响应不包含userId');
|
||||
}
|
||||
|
||||
if (responseBody.username) {
|
||||
console.log(' ✅ 响应包含username:', responseBody.username);
|
||||
} else {
|
||||
console.log(' ⚠️ 响应不包含username');
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(' ❌ 无法解析响应体:', err.message);
|
||||
}
|
||||
} else {
|
||||
console.log(' ❌ 没有捕获到登录API响应');
|
||||
}
|
||||
|
||||
// 等待一段时间,观察页面变化
|
||||
await page.waitForTimeout(3000);
|
||||
|
||||
// 检查当前URL
|
||||
const currentUrl = page.url();
|
||||
console.log('6. 当前URL:', currentUrl);
|
||||
|
||||
// 检查localStorage中的token
|
||||
const token = await page.evaluate(() => localStorage.getItem('token'));
|
||||
console.log('7. Token in localStorage:', token ? '✅ 存在' : '❌ 不存在');
|
||||
if (token) {
|
||||
console.log(' - Token前20字符:', token.substring(0, 20));
|
||||
}
|
||||
|
||||
// 检查localStorage中的userId
|
||||
const userId = await page.evaluate(() => localStorage.getItem('userId'));
|
||||
console.log('8. UserId in localStorage:', userId || '❌ 不存在');
|
||||
|
||||
// 检查localStorage中的username
|
||||
const username = await page.evaluate(() => localStorage.getItem('username'));
|
||||
console.log('9. Username in localStorage:', username || '❌ 不存在');
|
||||
|
||||
// 检查是否有错误消息
|
||||
const errorMessages = await page.locator('.el-message--error').allTextContents();
|
||||
if (errorMessages.length > 0) {
|
||||
console.log(' ⚠️ 发现错误消息:', errorMessages);
|
||||
}
|
||||
|
||||
// 检查成功消息
|
||||
const successMessages = await page.locator('.el-message--success').allTextContents();
|
||||
if (successMessages.length > 0) {
|
||||
console.log(' ✅ 发现成功消息:', successMessages);
|
||||
}
|
||||
|
||||
// 截图
|
||||
await page.screenshot({ path: `test-results/login-diagnostic-${Date.now()}.png` });
|
||||
console.log('10. 截图已保存');
|
||||
|
||||
console.log('=== 诊断完成 ===');
|
||||
|
||||
// 验证登录是否成功
|
||||
expect(token).toBeTruthy();
|
||||
expect(currentUrl).not.toContain('/login');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,35 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { LoginPage } from './pages/LoginPage';
|
||||
|
||||
test.describe('登录稳定性测试', () => {
|
||||
let loginPage: LoginPage;
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
loginPage = new LoginPage(page);
|
||||
|
||||
// 确保页面已经导航到正确的URL,避免localStorage访问错误
|
||||
await page.goto('/');
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
});
|
||||
|
||||
// 连续执行10次登录测试,验证稳定性
|
||||
for (let i = 1; i <= 10; i++) {
|
||||
test(`登录测试 #${i}`, async ({ page }) => {
|
||||
console.log(`=== 开始登录测试 #${i} ===`);
|
||||
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'admin123');
|
||||
|
||||
const currentUrl = page.url();
|
||||
console.log(`测试 #${i} - 当前URL:`, currentUrl);
|
||||
|
||||
const token = await page.evaluate(() => localStorage.getItem('token'));
|
||||
console.log(`测试 #${i} - Token:`, token ? '存在' : '不存在');
|
||||
|
||||
expect(currentUrl).not.toContain('/login');
|
||||
expect(token).toBeTruthy();
|
||||
|
||||
console.log(`✅ 测试 #${i} 通过\n`);
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -19,6 +19,10 @@ test.describe('系统全面集成测试', () => {
|
||||
let fileManagementPage: FileManagementPage;
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
// 确保页面已经导航到正确的URL,避免localStorage访问错误
|
||||
await page.goto('/');
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
|
||||
loginPage = new LoginPage(page);
|
||||
userManagementPage = new UserManagementPage(page);
|
||||
roleManagementPage = new RoleManagementPage(page);
|
||||
@@ -32,7 +36,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('1. 用户认证流程测试', () => {
|
||||
test('1.1 正确的用户名和密码登录成功', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
|
||||
await expect(page).toHaveURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
await expect(page.locator('.dashboard')).toBeVisible();
|
||||
@@ -52,7 +56,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test('1.3 不存在的用户登录失败', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.usernameInput.fill('nonexistent');
|
||||
await loginPage.passwordInput.fill('Test@123');
|
||||
await loginPage.passwordInput.fill('admin123');
|
||||
await loginPage.loginButton.click();
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
@@ -63,7 +67,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test('1.4 空用户名或密码登录失败', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.usernameInput.fill('');
|
||||
await loginPage.passwordInput.fill('Test@123');
|
||||
await loginPage.passwordInput.fill('admin123');
|
||||
await loginPage.loginButton.click();
|
||||
|
||||
await expect(page.locator('.el-form-item__error')).toBeVisible({ timeout: 5000 });
|
||||
@@ -72,7 +76,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test('1.5 禁用用户登录失败', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.usernameInput.fill('disableduser');
|
||||
await loginPage.passwordInput.fill('Test@123');
|
||||
await loginPage.passwordInput.fill('admin123');
|
||||
await loginPage.loginButton.click();
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
@@ -82,7 +86,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('1.6 登出功能正常', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
|
||||
await expect(page).toHaveURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
@@ -97,7 +101,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('2. 用户管理流程测试', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
});
|
||||
|
||||
@@ -119,7 +123,7 @@ test.describe('系统全面集成测试', () => {
|
||||
await userManagementPage.clickCreateUser();
|
||||
await userManagementPage.fillUserForm({
|
||||
username: username,
|
||||
password: 'Test@123',
|
||||
password: 'admin123',
|
||||
email: `${username}@test.com`,
|
||||
phone: '13800138000',
|
||||
nickname: `测试用户${Date.now()}`
|
||||
@@ -139,7 +143,9 @@ test.describe('系统全面集成测试', () => {
|
||||
await userManagementPage.goto();
|
||||
await userManagementPage.waitForTableReady();
|
||||
|
||||
await userManagementPage.clickEditButton(1);
|
||||
// 不要编辑admin用户(第1行),否则可能影响后续测试
|
||||
// 编辑第2行的用户
|
||||
await userManagementPage.clickEditButton(2);
|
||||
|
||||
const newNickname = `更新昵称_${Date.now()}`;
|
||||
await userManagementPage.fillNickname(newNickname);
|
||||
@@ -157,7 +163,7 @@ test.describe('系统全面集成测试', () => {
|
||||
await userManagementPage.clickCreateUser();
|
||||
await userManagementPage.fillUserForm({
|
||||
username: username,
|
||||
password: 'Test@123',
|
||||
password: 'admin123',
|
||||
email: `${username}@test.com`,
|
||||
phone: '13800138000',
|
||||
nickname: `待删除用户${Date.now()}`
|
||||
@@ -180,7 +186,9 @@ test.describe('系统全面集成测试', () => {
|
||||
await userManagementPage.goto();
|
||||
await userManagementPage.waitForTableReady();
|
||||
|
||||
await userManagementPage.clickEditButton(1);
|
||||
// 不要编辑admin用户(第1行),否则可能影响后续测试
|
||||
// 编辑第2行的用户
|
||||
await userManagementPage.clickEditButton(2);
|
||||
await userManagementPage.selectRole('管理员');
|
||||
await userManagementPage.submitForm();
|
||||
|
||||
@@ -192,7 +200,9 @@ test.describe('系统全面集成测试', () => {
|
||||
await userManagementPage.goto();
|
||||
await userManagementPage.waitForTableReady();
|
||||
|
||||
await userManagementPage.clickStatusButton(1);
|
||||
// 不要禁用admin用户(第1行)和testadmin用户(第2行),否则后续测试无法登录
|
||||
// 使用第3行的用户进行测试
|
||||
await userManagementPage.clickStatusButton(3);
|
||||
|
||||
const success = await userManagementPage.waitForSuccessMessage();
|
||||
expect(success).toBeTruthy();
|
||||
@@ -202,7 +212,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('3. 角色管理流程测试', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
});
|
||||
|
||||
@@ -303,7 +313,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('4. 菜单管理流程测试', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
});
|
||||
|
||||
@@ -376,7 +386,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('5. 权限验证测试', () => {
|
||||
test('5.1 管理员可以访问所有功能', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
await userManagementPage.goto();
|
||||
@@ -391,7 +401,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('5.2 普通用户只能访问授权功能', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('normaluser', 'Test@123');
|
||||
await loginPage.login('normaluser', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
await page.goto('/user-management');
|
||||
@@ -413,7 +423,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('6. 操作日志测试', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
});
|
||||
|
||||
@@ -461,7 +471,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('7. 字典管理测试', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
});
|
||||
|
||||
@@ -517,7 +527,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('8. 系统配置测试', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
});
|
||||
|
||||
@@ -569,7 +579,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('9. 文件管理测试', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
});
|
||||
|
||||
@@ -631,7 +641,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('10. 异常场景测试', () => {
|
||||
test('10.1 网络错误处理', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
await page.route('**/api/**', route => route.abort('failed'));
|
||||
@@ -643,13 +653,13 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('10.2 并发操作处理', async ({ page, context }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
const page2 = await context.newPage();
|
||||
const loginPage2 = new LoginPage(page2);
|
||||
await loginPage2.goto();
|
||||
await loginPage2.login('admin', 'Test@123');
|
||||
await loginPage2.login('admin', 'admin123');
|
||||
await page2.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
await userManagementPage.goto();
|
||||
@@ -663,7 +673,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('10.3 数据验证错误', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
await userManagementPage.goto();
|
||||
@@ -682,7 +692,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('10.4 会话超时处理', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
await page.evaluate(() => {
|
||||
@@ -697,7 +707,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('10.5 权限不足操作', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('normaluser', 'Test@123');
|
||||
await loginPage.login('normaluser', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
const response = await page.request.post('/api/users', {
|
||||
@@ -716,7 +726,7 @@ test.describe('系统全面集成测试', () => {
|
||||
const startTime = Date.now();
|
||||
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
const loadTime = Date.now() - startTime;
|
||||
@@ -726,7 +736,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('11.2 大数据量查询性能', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
const startTime = Date.now();
|
||||
@@ -741,7 +751,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('11.3 并发请求处理', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
const requests = Array(10).fill(null).map(() =>
|
||||
@@ -759,7 +769,7 @@ test.describe('系统全面集成测试', () => {
|
||||
test.describe('12. 数据一致性测试', () => {
|
||||
test('12.1 创建后立即查询数据一致性', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
const timestamp = Date.now();
|
||||
@@ -769,7 +779,7 @@ test.describe('系统全面集成测试', () => {
|
||||
await userManagementPage.clickCreateUser();
|
||||
await userManagementPage.fillUserForm({
|
||||
username: username,
|
||||
password: 'Test@123',
|
||||
password: 'admin123',
|
||||
email: `${username}@test.com`,
|
||||
phone: '13800138000',
|
||||
nickname: `一致性测试用户${timestamp}`
|
||||
@@ -788,7 +798,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('12.2 更新后数据一致性', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
await userManagementPage.goto();
|
||||
@@ -814,7 +824,7 @@ test.describe('系统全面集成测试', () => {
|
||||
|
||||
test('12.3 删除后数据不可见', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
await page.waitForURL(/\/(dashboard|\/)$/, { timeout: 10000 });
|
||||
|
||||
const timestamp = Date.now();
|
||||
@@ -824,7 +834,7 @@ test.describe('系统全面集成测试', () => {
|
||||
await userManagementPage.clickCreateUser();
|
||||
await userManagementPage.fillUserForm({
|
||||
username: username,
|
||||
password: 'Test@123',
|
||||
password: 'admin123',
|
||||
email: `${username}@test.com`,
|
||||
phone: '13800138000',
|
||||
nickname: `删除测试用户${timestamp}`
|
||||
|
||||
@@ -16,7 +16,7 @@ test.describe('用户创建诊断测试', () => {
|
||||
|
||||
// 登录
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
console.log('1. 登录成功');
|
||||
|
||||
// 导航到用户管理页面
|
||||
@@ -33,7 +33,7 @@ test.describe('用户创建诊断测试', () => {
|
||||
const username = `diag_${uuid}`;
|
||||
const userData = {
|
||||
username: username,
|
||||
password: 'Test@123',
|
||||
password: 'admin123',
|
||||
email: `${username}@test.com`,
|
||||
phone: '13800138000',
|
||||
nickname: `诊断用户${Date.now()}`
|
||||
|
||||
@@ -10,7 +10,7 @@ test.describe('用户创建诊断测试', () => {
|
||||
|
||||
test('诊断用户创建流程', async ({ page }) => {
|
||||
await loginPage.goto();
|
||||
await loginPage.login('admin', 'Test@123');
|
||||
await loginPage.login('admin', 'admin123');
|
||||
console.log('=== 开始诊断用户创建流程 ===');
|
||||
|
||||
await page.goto('/users');
|
||||
@@ -27,7 +27,7 @@ test.describe('用户创建诊断测试', () => {
|
||||
const timestamp = Date.now();
|
||||
const userData = {
|
||||
username: `testuser_${timestamp}`,
|
||||
password: 'Test@123',
|
||||
password: 'admin123',
|
||||
email: `testuser_${timestamp}@test.com`,
|
||||
phone: '13800138000',
|
||||
nickname: `测试用户${timestamp}`
|
||||
|
||||
Reference in New Issue
Block a user