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

Playwright onEnd()结果无duration属性,与文档不符求排查

问题分析与解决方案

你遇到的问题并非操作不当,而是Playwright 1.34.1版本的功能限制与文档滞后导致的:

  1. 版本差异问题
    在Playwright 1.34.1及更早版本中,onEnd方法接收的result参数(对应FullResult类型)确实仅包含status属性,没有文档中描述的duration和startTime。这是因为这两个属性是在1.35版本才被添加到FullResult类型中的,而官方文档提前更新了对应内容,导致旧版本用户出现匹配问题。

  2. 临时解决方案
    如果无法升级Playwright版本,你可以手动记录测试的开始时间并计算时长:

    // 在全局作用域或配置文件顶部定义变量
    let globalStartTime: number;
    
    // 在全局beforeAll钩子中记录开始时间
    async function beforeAll() {
      globalStartTime = Date.now();
    }
    
    async onEnd(result): Promise<void> {
      const suiteData: LogSuiteData = {
        "@timeStamp": globalStartTime,
        suiteDuration: Date.now() - globalStartTime,
        suiteResult: result.status,
      };
    
      logArray.push(suiteData);
      await logCallHandler.postReportDataBatch(logArray);
    }
    
  3. 最优解决方案
    直接升级Playwright到1.35或更高版本,升级后FullResult类型会包含duration(毫秒级时长)和startTime(时间戳)属性,文档描述与实际行为将保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:32:34