/** * ================================================================ * 场景:会员体系全流程 E2E 测试 * ================================================================ * 用户故事:用户购买/试用会员,管理员配置会员费用 * * 流程步骤: * 1. 查看会员等级 * 2. 购买会员 * 3. 领取试用会员 * * 关键里程碑: * - [Milestone-1] 会员激活成功 * ================================================================ * * 运行:npx playwright test tests/e2e/membership-system.spec.js */ const { test, expect } = require('@playwright/test'); test.describe('【场景流程】会员体系全流程', () => { // ===== 场景1:查看会员等级 ===== test('[场景1] 查看会员等级 - 期望返回等级列表', async ({ page }) => { // ========== Given:用户进入会员页 ========== await page.goto('/#/pages/profile/membership'); await page.waitForLoadState('networkidle'); // ========== When:查看会员等级 ========== await page.waitForSelector('.level-list, .membership-card', { timeout: 10000 }); // ========== Then:返回等级列表 ======== const levelCards = page.locator('.level-card, .membership-level'); const count = await levelCards.count(); expect(count).toBeGreaterThan(0); // 验证包含权益信息 const firstCard = levelCards.first(); const benefitTag = firstCard.locator('.benefit-tag, .benefit'); if (await benefitTag.isVisible()) { const benefitText = await benefitTag.textContent(); expect(benefitText).toBeTruthy(); } }); // ===== 场景2:购买会员 ===== test('[场景2] 购买会员 - 期望会员激活', async ({ page }) => { // ========== Given:用户选择会员等级 ========== await page.goto('/#/pages/profile/membership'); await page.waitForLoadState('networkidle'); // ========== When:购买会员 ========== await page.waitForSelector('.level-card', { timeout: 10000 }); // 点击购买按钮 const buyBtn = page.locator('.buy-btn, .purchase-btn').first(); if (await buyBtn.isVisible()) { await buyBtn.click(); } // 选择支付方式 const payMethod = page.locator('.pay-method:has-text("微信")'); if (await payMethod.isVisible()) { await payMethod.click(); } // 确认支付 await page.click('.confirm-btn, .pay-btn'); // ========== Then:Milestone-1 - 会员激活 ======== await page.waitForSelector('.success-tip, .activate-success, .toast-success', { timeout: 15000 }); expect(await page.locator('.success-tip, .activate-success').isVisible()).toBeTruthy(); }); // ===== 场景3:领取试用会员 ===== test('[场景3] 领取试用会员 - 期望试用激活', async ({ page }) => { // ========== Given:用户进入会员页 ========== await page.goto('/#/pages/profile/membership'); await page.waitForLoadState('networkidle'); // ========== When:领取试用 ========== const trialBtn = page.locator('.trial-btn, .free-trial-btn'); if (await trialBtn.isVisible()) { await trialBtn.click(); } // 确认领取 const confirmBtn = page.locator('.van-dialog__confirm, .dialog-confirm'); if (await confirmBtn.isVisible()) { await confirmBtn.click(); } // ========== Then:试用激活 ======== await page.waitForSelector('.success-tip, .trial-success, .toast-success', { timeout: 10000 }); expect(await page.locator('.success-tip, .trial-success').isVisible()).toBeTruthy(); }); });