/** * 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}`); }); });