如何在Playwright的globalSetup中引用playwright.config配置的baseUrl
Playwright global-setup 读取配置中baseURL的实现方法
方案1:直接导入配置文件读取(最简便)
直接在global-setup.ts中导入你的playwright配置文件,直接读取定义好的baseURL值即可,示例代码如下:
首先确认你的playwright.config.ts中已经正确配置baseURL:
// playwright.config.ts import { defineConfig } from '@playwright/test'; export default defineConfig({ globalSetup: './global-setup.ts', use: { baseURL: 'https://test1.com', // 你配置的baseUrl // 其他配置项 }, // 其他全局配置 });
然后修改global-setup.ts代码:
// global-setup.ts import { chromium } from '@playwright/test'; import playwrightConfig from './playwright.config'; async function globalSetup() { const browser = await chromium.launch(); const context = await browser.newContext(); const page = await context.newPage(); // 读取配置中的baseURL,替换原有硬编码链接 const baseURL = playwrightConfig.use?.baseURL as string; await page.goto(baseURL); // 你原有的存储状态等逻辑保持不变 await context.storageState({ path: 'playwright/.auth/user.json' }); await browser.close(); } export default globalSetup;
方案2:通过环境变量传递(适合多环境切换场景)
如果你的测试需要在多环境下运行,更推荐通过环境变量统一管理baseURL,两边都从环境变量取值即可:
- 首先修改
playwright.config.ts,从环境变量读取baseURL:
// playwright.config.ts import { defineConfig } from '@playwright/test'; export default defineConfig({ globalSetup: './global-setup.ts', use: { baseURL: process.env.TEST_BASE_URL || 'https://test1.com', }, });
- 然后在
global-setup.ts中直接读取同一个环境变量即可:
// global-setup.ts const baseURL = process.env.TEST_BASE_URL || 'https://test1.com'; await page.goto(baseURL);
运行测试前可以按需设置环境变量,比如:
# macOS/Linux TEST_BASE_URL=https://test2.com npx playwright test # Windows set TEST_BASE_URL=https://test2.com && npx playwright test
内容的提问来源于stack exchange,提问作者OrdinaryKing
相关产品推荐
相关产品推荐

