错误屏幕截图我正在使用 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);
});
}
任何人都可以建议如何在这种情况下稳定测试吗?
我尝试禁用并行执行 -> 没有成功 已经引入了足够的等待,但仍然没有帮助。
也许将其包裹起来会更好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);
此外,还不清楚你要解决什么功能,所以这里无法调试它。