如何仅增加特定操作/测试的超时?

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

我在 PlaywrightTestConfig 文件中将超时设置为 2 分钟作为全局设置。在其中一个测试用例中,我想等待 10 分钟以进行文件验证。 所有测试的全局设置定义如下:

const config: PlaywrightTestConfig = {
  // Timeout for each Playwright action in milliseconds. Defaults to 0 (no timeout)
  timeout: 120000
  ...
}

我尝试过这些方法:

  1. 点击({超时:600000});
  2. 测试.slow();
  3. test.setTimeout(600000);
  4. page.setDefaultTimeout(600000);
  5. page.setDefaultNavigationTimeout(600000);

在所有这些情况下,测试都会在 2 分钟后超时,而不是覆盖 10 分钟(600000)。

提高全局设置可能会起作用,但它会使整个测试套件运行速度变慢,这并不理想。

步骤的超时时间是否可以大于全局超时时间?

typescript ui-automation playwright playwright-test
2个回答
1
投票

对特定操作有自定义超时

页面对象内的具体操作:

 async performSomeAction() {
  //some test steps
   await page.click(someLocator)
   await page.waitForSelector(locatorWhichAppearAfterClick,{timeout:400000})
  //some other steps
}

内部测试:

test('Perform someAction', async () => {
    await page.performSomeAction()  
  },600000)

参考:https://playwright.dev/docs/test-timeouts


-1
投票

听起来您的套件中有不同类型的测试。根据持续时间将它们分开的一种可能方法是将它们分成项目。然后,对于每个项目,您可以指定不同的

timeout
,而不是使用一个不适合所有用例的全局值。

{
  "use": [
    {
      "browserName": "chromium",
      "timeout": 120000
    },
    {
      "browserName": "chromium",
      "timeout": 600000,
      "testMatch": '/long-tasks/**/*.spec.js',
    }
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.