最强自动化测试框架Playwright(14)- 测试隔离

隔离

使用 Playwright 编写的测试在称为浏览器上下文的隔离的全新环境中执行。这种隔离模型提高了可重复性,并防止了级联测试失败。

什么是测试隔离?

测试隔离是指每个测试与另一个测试完全隔离。每个测试都独立于任何其他测试运行。这意味着每个测试都有自己的本地存储、会话存储、cookie 等。Playwright使用BrowserContexts来实现这一点,它相当于类似隐身的配置文件。它们创建起来既快速又便宜,并且是完全隔离的,即使在单个浏览器中运行时也是如此。Playwright 为每个测试创建一个上下文,并在该上下文中提供一个默认页面

为什么测试隔离很重要?

  • 无故障结转。如果一个测试失败,则不会影响另一个测试。
  • 易于调试错误或不稳定,因为您可以根据需要多次运行单个测试。
  • 并行运行、分片等时不必考虑顺序。

两种测试隔离方式

测试隔离有两种不同的策略:从头开始或中间进行清理。在测试之间清理的问题在于,很容易忘记清理,有些事情是不可能清理的,例如“访问过的链接”。一个测试的状态可能会泄漏到下一个测试中,这可能会导致测试失败,并使调试更加困难,因为问题来自另一个测试。从头开始意味着一切都是新的,因此如果测试失败,您只需查看该测试即可进行调试。

如何实现测试隔离

playwright使用浏览器上下文来实现测试隔离。每个测试都有自己的浏览器上下文。每次运行测试都会创建新的浏览器上下文。使用 Playwright 作为测试运行程序时,默认情况下会创建浏览器上下文,也可以手动创建浏览器上下文。

browser = playwright.chromium.launch()
context = browser.new_context()
page = context.new_page()

浏览器上下文还可用于模拟涉及移动设备、权限、区域设置和配色方案的多页方案。查看我们的仿真指南了解更多详情。

单个测试中的多个上下文

playwright可以在单个场景中创建多个浏览器上下文。想要测试多用户功能(如聊天)时,这很有用。

from playwright.sync_api import sync_playwright

def run(playwright):
    # create a chromium browser instance
    chromium = playwright.chromium
    browser = chromium.launch()

    # create two isolated browser contexts
    user_context = browser.new_context()
    admin_context = browser.new_context()

    # create pages and interact with contexts independently

with sync_playwright() as playwright:
    run(playwright)

猜你喜欢

转载自blog.csdn.net/seanyang_/article/details/132250582