你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Microsoft Playwright Testing 预览版排查运行测试的问题

本文介绍使用 Microsoft Playwright Testing Preview 大规模运行 Playwright 测试时可能出现的问题。

重要

Microsoft Playwright Testing 目前以预览版提供。 有关 beta 版、预览版或尚未正式发布的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款

测试失败并出现 401 Unauthorized 错误

访问令牌可能无效或已过期。 请确保使用正确的访问令牌或 生成新的访问令牌

测试运行缓慢

Microsoft Playwright Testing 托管特定 Azure 区域中的远程浏览器。 如果客户端计算机或目标 Web 应用程序在这些区域之外,可能会遇到网络延迟增加。 了解如何优化工作区的区域延迟。

测试似乎挂起

由于一段无意中暂停测试执行的代码,测试可能会挂起。 例如,在调试测试时,你可能已添加暂停语句。

搜索代码中的任何语句实例 pause() 并将其注释掉。

由于超时,测试失败

由于以下原因,测试可能会超时:

  • 客户端计算机位于与浏览器不同的区域中。

    连接服务托管浏览器会引入网络延迟。 可能需要在 Playwright 配置中增加超时设置。 从增加 测试超时 设置 playwright.service.config.ts开始。

  • 跟踪文件会导致性能问题(当前为已知问题)。

    将 Playwright 跟踪文件从服务发送到客户端计算机可以创建拥塞,这可能会导致测试由于超时而失败。可以在 Playwright 配置文件中禁用跟踪。

无法测试防火墙后托管的 Web 应用程序

请确保在playwright.service.config.ts文件中设置exposeNetwork选项,使客户端计算机上的网络可用到云浏览器。 此选项的示例值为: <loopback> 对于 localhost 网络, * 公开所有网络或应用程序终结点的 IP 地址/DNS。

详细了解如何 测试本地部署的应用程序

浏览器中显示的时间与本地时间不同

Web 应用程序通常根据用户的位置显示时间。 使用 Microsoft Playwright Testing 运行测试时,客户端计算机和服务浏览器可能位于不同的区域。

可以通过在 Playwright 配置文件中指定时区来缓解此问题

测试失败并出现 Path is not available when connecting remotely

使用 Microsoft Playwright Testing 在远程浏览器上运行 Playwright 测试时,可能会遇到 Path is not available when connecting remotely 错误。 例如,在测试功能以下载测试代码中的文件时。

此问题 path() 的原因是,在远程浏览器运行时,下载文件实例上的函数不可用。

若要解决此问题,应使用该 saveAs() 函数在客户端计算机上保存文件的本地副本。 了解有关 Playwright 文档中的下载的详细信息

以下代码片段提供了一个示例,说明如何使用 saveAs() 而不是 path() 读取下载的文件的内容:

TypeScript
const downloadPromise = page.waitForEvent('download');
await page.getByText('Download file').click();

const download = await downloadPromise;

// FAILS: download.path() fails when connecting to a remote browser
// const result = fs.readFileSync(await download.path(), 'utf-8');

// FIX: use saveAs() to download the file, when connecting to a remote browser
await download.saveAs('/path/to/save/at/' + download.suggestedFilename());