新增e2e测试脚本,修复部分问题
This commit was merged in pull request #51.
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
/**
|
||||
* 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}`);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user