You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为运行Puppeteer的Jest测试设置最大超时时间?

设置Puppeteer测试用例的最大超时时间

别担心,这个功能其实很好实现,主要分两种场景来处理:测试框架层面的全局/单例超时控制和Puppeteer自身操作的超时限制,结合你的代码给你具体方案:

1. 针对单个测试用例设置总超时(Jest框架)

从你的代码来看,你应该是用Jest写的测试。Jest本身支持给单个测试用例设置总超时时间,只需要在test函数的第三个参数里配置即可,比如设置10秒超时:

import puppeteer from 'puppeteer'

test('App loads', async() => { 
  const browser = await puppeteer.launch({ headless: false, slowMo: 250 }); 
  const page = await browser.newPage(); 
  await page.goto('http://localhost:3000'); 
  await browser.close(); 
}, 10000); // 这里的10000就是超时时间,单位为毫秒

如果想给所有测试用例设置全局默认超时,可以在Jest配置文件(比如jest.config.js)里添加:

module.exports = {
  testTimeout: 10000, // 全局默认测试超时10秒
};

2. 控制Puppeteer单个操作的超时

如果只是担心某个特定的Puppeteer操作(比如page.goto)耗时过长,可以给这个操作单独设置超时:

// 给page.goto设置5秒超时,超时会直接抛出错误
await page.goto('http://localhost:3000', { timeout: 5000 });

也可以给整个Page实例设置默认超时,后续所有页面操作都会沿用这个设置:

const page = await browser.newPage();
page.setDefaultTimeout(5000); // 所有页面操作默认5秒超时

3. 两种方式结合使用

如果既想限制整个测试用例的总执行时长,又要控制单个Puppeteer操作的耗时,可以同时配置,这样能更精准地把控测试的执行节奏,避免某个慢操作拖垮整个测试。

内容的提问来源于stack exchange,提问作者Atav32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:30:58