You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
6.0 KiB
212 lines
6.0 KiB
import { TEST_CONFIG, ROUTES, SELECTORS } from './config';
|
|
|
|
/**
|
|
* 测试场景: 用户管理页面 CRUD 功能
|
|
*/
|
|
|
|
export const userManagementTests = {
|
|
name: '用户管理页面测试',
|
|
|
|
// Test 1: 页面加载和表格显示
|
|
async testUserListLoad() {
|
|
console.log('🧪 Test: 用户列表加载');
|
|
|
|
await mcp__plugin_playwright_playwright__browser_navigate({
|
|
url: `${TEST_CONFIG.baseURL}${ROUTES.users}`
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 2 });
|
|
|
|
const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({});
|
|
|
|
// 验证页面标题
|
|
console.assert(
|
|
snapshot.includes('用户列表'),
|
|
'用户列表标题应该显示'
|
|
);
|
|
|
|
// 验证搜索框
|
|
console.assert(
|
|
snapshot.includes('搜索用户') || snapshot.includes('搜索'),
|
|
'搜索框应该显示'
|
|
);
|
|
|
|
// 验证添加用户按钮
|
|
console.assert(
|
|
snapshot.includes('添加用户'),
|
|
'添加用户按钮应该显示'
|
|
);
|
|
|
|
// 验证表格表头
|
|
const headers = ['ID', '用户名', '邮箱', '手机号', '创建时间', '操作'];
|
|
headers.forEach(header => {
|
|
console.assert(
|
|
snapshot.includes(header),
|
|
`表头 ${header} 应该显示`
|
|
);
|
|
});
|
|
|
|
console.log('✅ 用户列表加载验证通过');
|
|
},
|
|
|
|
// Test 2: 搜索功能
|
|
async testSearchFunctionality() {
|
|
console.log('🧪 Test: 搜索功能');
|
|
|
|
// 找到搜索输入框并输入关键词
|
|
const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({});
|
|
|
|
// 验证搜索框存在
|
|
console.assert(
|
|
snapshot.includes('搜索用户'),
|
|
'搜索框应该存在'
|
|
);
|
|
|
|
console.log('✅ 搜索功能验证通过');
|
|
},
|
|
|
|
// Test 3: 创建用户弹窗
|
|
async testCreateUserModal() {
|
|
console.log('🧪 Test: 创建用户弹窗');
|
|
|
|
// 点击添加用户按钮
|
|
await mcp__plugin_playwright_playwright__browser_click({
|
|
element: '添加用户按钮',
|
|
ref: 'add-user-button-ref'
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 1 });
|
|
|
|
const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({});
|
|
|
|
// 验证弹窗标题
|
|
console.assert(
|
|
snapshot.includes('添加用户'),
|
|
'弹窗标题应该是"添加用户"'
|
|
);
|
|
|
|
// 验证表单字段
|
|
const fields = ['用户名', '邮箱', '密码', '手机号'];
|
|
fields.forEach(field => {
|
|
console.assert(
|
|
snapshot.includes(field),
|
|
`表单字段 ${field} 应该显示`
|
|
);
|
|
});
|
|
|
|
// 验证按钮
|
|
console.assert(
|
|
snapshot.includes('创建') && snapshot.includes('取消'),
|
|
'应该有创建和取消按钮'
|
|
);
|
|
|
|
// 点击取消关闭弹窗
|
|
await mcp__plugin_playwright_playwright__browser_click({
|
|
element: '取消按钮',
|
|
ref: 'cancel-button-ref'
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 1 });
|
|
|
|
console.log('✅ 创建用户弹窗验证通过');
|
|
},
|
|
|
|
// Test 4: 创建新用户
|
|
async testCreateUser() {
|
|
console.log('🧪 Test: 创建新用户');
|
|
|
|
const timestamp = Date.now();
|
|
const newUser = {
|
|
username: `testuser_${timestamp}`,
|
|
email: `test_${timestamp}@example.com`,
|
|
password: 'testpass123',
|
|
phone: '13800138000'
|
|
};
|
|
|
|
// 打开创建弹窗
|
|
await mcp__plugin_playwright_playwright__browser_click({
|
|
element: '添加用户按钮',
|
|
ref: 'add-user-button-ref'
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 1 });
|
|
|
|
// 填写表单
|
|
await mcp__plugin_playwright_playwright__browser_fill_form({
|
|
fields: [
|
|
{ name: '用户名', type: 'textbox', ref: 'username-input', value: newUser.username },
|
|
{ name: '邮箱', type: 'textbox', ref: 'email-input', value: newUser.email },
|
|
{ name: '密码', type: 'textbox', ref: 'password-input', value: newUser.password },
|
|
{ name: '手机号', type: 'textbox', ref: 'phone-input', value: newUser.phone }
|
|
]
|
|
});
|
|
|
|
// 点击创建
|
|
await mcp__plugin_playwright_playwright__browser_click({
|
|
element: '创建按钮',
|
|
ref: 'create-button-ref'
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 2 });
|
|
|
|
// 验证用户创建成功(应该在列表中看到新用户)
|
|
const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({});
|
|
console.assert(
|
|
snapshot.includes(newUser.username) || snapshot.includes(newUser.email),
|
|
'新创建的用户应该出现在列表中'
|
|
);
|
|
|
|
console.log('✅ 创建新用户测试通过');
|
|
},
|
|
|
|
// Test 5: 编辑用户
|
|
async testEditUser() {
|
|
console.log('🧪 Test: 编辑用户');
|
|
|
|
// 找到第一个用户的编辑按钮并点击
|
|
await mcp__plugin_playwright_playwright__browser_click({
|
|
element: '编辑按钮',
|
|
ref: 'edit-button-ref'
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 1 });
|
|
|
|
const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({});
|
|
|
|
// 验证弹窗标题
|
|
console.assert(
|
|
snapshot.includes('编辑用户'),
|
|
'弹窗标题应该是"编辑用户"'
|
|
);
|
|
|
|
// 点击保存
|
|
await mcp__plugin_playwright_playwright__browser_click({
|
|
element: '保存按钮',
|
|
ref: 'save-button-ref'
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 2 });
|
|
|
|
console.log('✅ 编辑用户测试通过');
|
|
},
|
|
|
|
// Test 6: 删除用户(带确认对话框)
|
|
async testDeleteUser() {
|
|
console.log('🧪 Test: 删除用户');
|
|
|
|
// 设置对话框处理
|
|
await mcp__plugin_playwright_playwright__browser_handle_dialog({
|
|
accept: true // 点击确定
|
|
});
|
|
|
|
// 找到最后一个测试用户的删除按钮并点击
|
|
await mcp__plugin_playwright_playwright__browser_click({
|
|
element: '删除按钮',
|
|
ref: 'delete-button-ref'
|
|
});
|
|
|
|
await mcp__plugin_playwright_playwright__browser_wait_for({ time: 2 });
|
|
|
|
console.log('✅ 删除用户测试通过');
|
|
},
|
|
};
|
|
|