125 lines
4.0 KiB
JavaScript
125 lines
4.0 KiB
JavaScript
/**
|
|
* P2 - 个人中心测试: 个人中心 → 查看会员信息
|
|
*
|
|
* 前置条件:
|
|
* - 微信开发者工具已打开,CLI 端口 45869
|
|
* - 后端服务 http://192.168.110.64:8084 已启动
|
|
* - 用户已登录状态
|
|
*/
|
|
const {
|
|
launchMiniProgram,
|
|
connectMiniProgram,
|
|
waitForPage,
|
|
screenshot,
|
|
switchTab,
|
|
generateTestId
|
|
} = require('../helpers/automator');
|
|
const ProfilePage = require('../pages/ProfilePage');
|
|
const MyCoursesPage = require('../pages/MyCoursesPage');
|
|
|
|
let miniProgram;
|
|
const TEST_ID = generateTestId();
|
|
|
|
describe('P2 - 个人中心测试', () => {
|
|
beforeAll(async () => {
|
|
console.log(`[P2] 测试 ID: ${TEST_ID}`);
|
|
try {
|
|
miniProgram = await connectMiniProgram();
|
|
console.log('[P2] 已连接小程序');
|
|
} catch (e) {
|
|
console.log('[P2] 连接失败,尝试启动小程序...');
|
|
miniProgram = await launchMiniProgram();
|
|
}
|
|
|
|
await miniProgram.waitFor(3000);
|
|
|
|
// 确保已登录状态
|
|
try {
|
|
const page = await miniProgram.currentPage();
|
|
if (page.path && page.path.includes('login')) {
|
|
await miniProgram.reLaunch('/pages/index/index');
|
|
await miniProgram.waitFor(2000);
|
|
}
|
|
} catch (e) {
|
|
// ignore
|
|
}
|
|
}, 60000);
|
|
|
|
afterAll(async () => {
|
|
if (miniProgram) {
|
|
await screenshot(miniProgram, 'member_profile_final');
|
|
global.__MINI_PROGRAM__ = miniProgram;
|
|
}
|
|
});
|
|
|
|
test('TC-PROFILE-001: 导航到个人中心', async () => {
|
|
await switchTab(miniProgram, 3);
|
|
const page = await waitForPage(miniProgram, 'pages/profile/profile', 15000);
|
|
|
|
expect(page).toBeTruthy();
|
|
expect(page.path).toContain('pages/profile/profile');
|
|
|
|
console.log('[TC-PROFILE-001] 成功进入个人中心');
|
|
await screenshot(miniProgram, `member_profile_landing_${TEST_ID}`);
|
|
});
|
|
|
|
test('TC-PROFILE-002: 获取会员信息', async () => {
|
|
const profilePage = new ProfilePage(miniProgram);
|
|
const name = await profilePage.getMemberName();
|
|
|
|
console.log(`[TC-PROFILE-002] 会员名称: "${name}"`);
|
|
|
|
// 验证至少能读到页面数据
|
|
const info = await profilePage.getProfileInfo();
|
|
console.log('[TC-PROFILE-002] 会员完整信息:', JSON.stringify(info));
|
|
|
|
// 个人中心页面应能正确加载
|
|
await screenshot(miniProgram, `member_profile_info_${TEST_ID}`);
|
|
});
|
|
|
|
test('TC-PROFILE-003: 获取菜单项', async () => {
|
|
const profilePage = new ProfilePage(miniProgram);
|
|
const menuItems = await profilePage.getMenuItems();
|
|
|
|
console.log(`[TC-PROFILE-003] 菜单项数量: ${menuItems.length}`);
|
|
|
|
await screenshot(miniProgram, `member_profile_menu_${TEST_ID}`);
|
|
});
|
|
|
|
test('TC-PROFILE-004: 从个人中心跳转到我的课程', async () => {
|
|
const profilePage = new ProfilePage(miniProgram);
|
|
await profilePage.navigateToMyCourses();
|
|
|
|
const page = await waitForPage(miniProgram, 'pages/my-courses/my-courses', 15000);
|
|
expect(page).toBeTruthy();
|
|
expect(page.path).toContain('pages/my-courses/my-courses');
|
|
|
|
console.log('[TC-PROFILE-004] 成功从个人中心跳转到我的课程');
|
|
await screenshot(miniProgram, `member_profile_to_courses_${TEST_ID}`);
|
|
});
|
|
|
|
test('TC-PROFILE-005: 从我的课程返回个人中心', async () => {
|
|
const myCoursesPage = new MyCoursesPage(miniProgram);
|
|
await myCoursesPage.navigateToProfile();
|
|
|
|
const page = await waitForPage(miniProgram, 'pages/profile/profile', 15000);
|
|
expect(page).toBeTruthy();
|
|
expect(page.path).toContain('pages/profile/profile');
|
|
|
|
console.log('[TC-PROFILE-005] 成功从我的课程返回个人中心');
|
|
await screenshot(miniProgram, `member_profile_returned_${TEST_ID}`);
|
|
});
|
|
|
|
test('TC-PROFILE-006: 个人中心下拉刷新', async () => {
|
|
const profilePage = new ProfilePage(miniProgram);
|
|
await profilePage.pullDownRefresh();
|
|
|
|
// 验证页面仍正常加载
|
|
const page = await miniProgram.currentPage();
|
|
expect(page.path).toContain('pages/profile/profile');
|
|
|
|
console.log('[TC-PROFILE-006] 个人中心下拉刷新完成');
|
|
await screenshot(miniProgram, `member_profile_refreshed_${TEST_ID}`);
|
|
});
|
|
});
|