/** * Playwright 线上 UI 级 E2E 配置(针对已部署站点 cfc.iwintrue.com) * ================================================================ * 与 playwright.config.js 的关键区别: * - **无 globalSetup**:默认配置的 globalSetup 会执行 reset-db.sh 重置共享测试库, * 对本配置(打生产/测试已部署站点)绝对禁止。 * - 只做只读浏览器自动化:不写业务数据(唯一例外是登录,属只读会话建立)。 * - workers=1、fullyParallel=false:单节点串行,符合「每个节点只能跑一个浏览器自动化任务」。 * - 两个 project 按 spec 分流:admin 走桌面视口,frontend(小程序 H5)走移动视口。 * * 运行(单节点、串行): * npx playwright test -c playwright.config.live.js --project=admin-desktop * npx playwright test -c playwright.config.live.js --project=frontend-mobile */ var path = require('path'); var LIVE_BASE = process.env.LIVE_BASE_URL || 'http://cfc.iwintrue.com'; module.exports = { testDir: path.join(__dirname, 'e2e-live'), timeout: 150000, expect: { timeout: 15000 }, retries: 0, workers: 1, fullyParallel: false, outputDir: path.join(__dirname, '.live-artifacts'), reporter: [['list']], use: { baseURL: LIVE_BASE, headless: true, ignoreHTTPSErrors: true, actionTimeout: 20000, navigationTimeout: 60000, screenshot: 'only-on-failure', trace: 'off', video: 'off', }, projects: [ { name: 'admin-desktop', testMatch: /admin-live\.spec\.js$/, use: { browserName: 'chromium', viewport: { width: 1440, height: 900 } }, }, { name: 'frontend-mobile', testMatch: /frontend-live\.spec\.js$/, use: { browserName: 'chromium', viewport: { width: 375, height: 812 }, isMobile: true, hasTouch: true }, }, { // 接口级契约(商城价格排序需求变更 S1):无需浏览器,走 request fixture 直连 /api name: 'shop-api', testMatch: /shop-sort-api\.spec\.js$/, use: { browserName: 'chromium' }, }, ], };