在沙盘中运行多个浏览器实例的配置

如果你指的是在 Playwright 沙盘环境里并行运行多个浏览器实例,可以按下面配置。每个 worker 启动一个独立浏览器进程;同一浏览器内也可以用多个 BrowserContext 隔离会话。
// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './tests',
fullyParallel: true,
workers: 4, // 并行 worker 数;通常不超过可用 CPU 核数
use: {
headless: true,
browserName: 'chromium',
},
});
容器中运行时,建议使用 Playwright 官方镜像,并为 Chromium 分配足够的共享内存:
docker run --rm \
--shm-size=1g \
-v "$PWD:/work" -w /work \
mcr.microsoft.com/playwright:v1.51.0-noble \
npx playwright test
如果是在自己的 Node.js 脚本中启动多个实例:
import { chromium } from 'playwright';
const browsers = await Promise.all(
Array.from({ length: 3 }, () =>
chromium.launch({ headless: true })
)
);
try {
// 每个 browser 是独立进程;context 用于隔离 cookie、缓存和页面
const contexts = await Promise.all(
browsers.map(browser => browser.newContext())
);
// 在各 context 中创建页面并执行任务
} finally {
await Promise.all(browsers.map(browser => browser.close()));
}
建议根据内存和 CPU 调整实例数;浏览器实例过多会导致内存不足或测试变慢。通常优先增加 BrowserContext,只有需要独立进程或不同浏览器配置时才增加浏览器实例。生产或 CI 环境尽量不要使用 --no-sandbox;如果沙盘本身限制了 Chromium 启动,再根据具体运行环境处理。
如果你使用的不是 Playwright(例如 Puppeteer、Selenium 或某个云端沙盘),请告诉我框架和运行方式,我可以给出对应配置。