如果通过 bitbucket 管道执行,剧作家测试会因超时而随机失败

问题描述 投票:0回答:1

错误屏幕截图我正在使用 docker 镜像运行我的剧作家测试:mcr.microsoft.com/playwright:v1.49.0-noble 在使用 bitbucket 管道的 Edge、chrome、safari 和 firefox 浏览器上。 即使有足够的等待时间,一些测试也会由于有时在 fiefox 或 chrome 上超时而随机失败。多次尝试后,所有测试也都是绿色的。在本地也可以正常工作。

下面是waituntil函数的代码。

async waitUntil(func, timeout = 1000, pollingRate = 100) {
        return new Promise((resolve, reject) => {
            const timer = setTimeout(() => {
                clearInterval(interval);
                reject(new Error('WaitUntil timed out'));
            }, timeout);
            const interval = setInterval(() => {
                if (!func())
                    return;

                clearTimeout(timer);
                clearInterval(interval);
                resolve();
            }, pollingRate);
        });
    }

任何人都可以建议如何在这种情况下稳定测试吗?

我尝试禁用并行执行 -> 没有成功 已经引入了足够的等待,但仍然没有帮助。

javascript automation bitbucket playwright
1个回答
0
投票

也许将其包裹起来会更好expect.poll

await expect.poll(async () => {
  const response = await page.request.get('https://api.example.com');
  return response.status();
}, {
  // Custom expect message for reporting, optional.
  message: 'make sure API eventually succeeds',
  // Poll for 10 seconds; defaults to 5 seconds. Pass 0 to disable timeout.
  timeout: 10000,
}).toBe(200);

此外,还不清楚你要解决什么功能,所以这里无法调试它。

© www.soinside.com 2019 - 2024. All rights reserved.