Playwright onEnd()结果无duration属性,与文档不符求排查
问题分析与解决方案
你遇到的问题并非操作不当,而是Playwright 1.34.1版本的功能限制与文档滞后导致的:
版本差异问题
在Playwright 1.34.1及更早版本中,onEnd方法接收的result参数(对应FullResult类型)确实仅包含status属性,没有文档中描述的duration和startTime。这是因为这两个属性是在1.35版本才被添加到FullResult类型中的,而官方文档提前更新了对应内容,导致旧版本用户出现匹配问题。临时解决方案
如果无法升级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); }最优解决方案
直接升级Playwright到1.35或更高版本,升级后FullResult类型会包含duration(毫秒级时长)和startTime(时间戳)属性,文档描述与实际行为将保持一致。
内容的提问来源于stack exchange,提问作者karcaroth
相关产品推荐
相关产品推荐

