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

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('✅ 删除用户测试通过');
},
};