Playwright简单测试耗时过长问题求助
Playwright默认测试用例执行耗时过长问题排查
问题描述
使用默认的example.spec.ts测试用例,仅前置钩子阶段就耗时很久。已将测试限制为仅使用Chromium浏览器,但运行2个简单测试有时仍需15秒左右。
执行测试的命令及输出:
C:\Projects\PW-Artem-B>npx playwright test Running 2 tests using 2 workers 2 passed (13.1s)
测试代码(example.spec.ts):
import { test, expect } from '@playwright/test'; test('has title', async ({ page }) => { await page.goto('https://playwright.dev/'); // Expect a title "to contain" a substring. await expect(page).toHaveTitle(/Playwright/); }); test('get started link', async ({ page }) => { await page.goto('https://playwright.dev/'); // Click the get started link. await page.getByRole('link', { name: 'Get started' }).click(); // Expects page to have a heading with the name of Installation. await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(); });
环境信息:
- 已在
playwright.config.ts中注释掉Chromium以外的其他浏览器 - 设备:Win11系统,Dell Latitude 5550
- Node版本:22.12.0
- Playwright版本:1.50.1
- 已尝试卸载重装VSCode,无效
解决建议
- 减少并发Worker数量:当前用2个Worker同时启动浏览器,笔记本资源有限时反而会互相抢占资源拖慢速度。在
playwright.config.ts中设置workers: 1:export default defineConfig({ workers: 1, // 其他原有配置... }); - 启用浏览器复用:避免每次测试都重新启动浏览器实例,执行测试时添加参数:
开发阶段也可以在配置里开启npx playwright test --reuse-browserheadless: false并配合复用,进一步节省启动时间。 - 检查系统资源占用:打开任务管理器,查看是否有后台进程(如杀毒软件、云同步工具、其他大型程序)占用大量CPU或内存,暂时关闭非必要进程后重新运行测试。
- 禁用Chromium沙箱:部分工作环境的安全策略会导致Chromium启动缓慢,在
playwright.config.ts中添加禁用沙箱的配置:export default defineConfig({ use: { launchOptions: { args: ['--no-sandbox', '--disable-setuid-sandbox'], }, }, // 其他原有配置... }); - 降级Node版本:Node 22属于较新的版本,可能和Playwright存在兼容性问题,建议降级到LTS版本(如Node 20.x)后重试。
- 重新安装Playwright浏览器:清理旧的浏览器缓存并重新安装对应版本的Chromium:
npx playwright install --force
内容的提问来源于stack exchange,提问作者AccidentalQa
相关产品推荐
相关产品推荐

