剧作家 - 配置超时是 2 分钟,但我想在我的一个测试用例中等待 5 分钟而不改变配置等待时间

问题描述 投票: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. test.slow();
  3. test.setTimeout(600000);
  4. page.setDefaultTimeout(600000);
  5. page.setDefaultNavigationTimeout(600000);

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

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

是否有可能让一个步骤的超时时间超过全局超时时间?

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

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

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

{
  "use": [
    {
      "browserName": "chromium",
      "timeout": 120000
    },
    {
      "browserName": "chromium",
      "timeout": 600000,
      "testMatch": '/long-tasks/**/*.spec.js',
    }
  ]
}

0
投票

对特定操作有自定义超时+测试超时

页面对象内的具体动作:

 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

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