欢迎光临散文网 会员登陆 & 注册

入门篇_编写测试用例

2023-03-04 15:23 作者:慧测  | 我要投稿

Playwright 断言是专门为动态 Web 设计的。检查会自动重试,直到满足必要条件。Playwright 内置自动等待功能,意味着它会等待元素可操作后再执行操作。Playwright 提供了一个 expect 函数来编写断言。

看一下下面的示例测试,了解如何使用定位器和基于 Web 的断言来编写测试用例。

断言(Assertions)

Playwright 提供了 expect 函数,它会等待满足期望的条件。

这段代码使用Playwright提供的expect函数,对当前页面进行断言。其中,断言的条件是页面的标题中包含"Playwright"这个子字符串。使用了Python内置的re模块创建了一个正则表达式对象,作为期望标题的参数。

定位器(Locators)

定位器是 Playwright 自动等待和重试的核心。定位器代表在任何时刻在页面上查找元素的方法,并用于对元素执行操作,如.click、.fill 等。

这段代码通过 get_by_role 函数创建一个名为 get_started 的定位器(locator)。该定位器被用来查找网页上 role 属性为 linkname 属性为 Get started 的元素。

测试隔离(Test Isolation)

Playwright Pytest 插件基于测试装置的概念,例如传递到您的测试中的内置页面装置。由于浏览器上下文,页面在测试之间被隔离,这相当于一个全新的浏览器配置文件,每个测试都会获得一个全新的环境,即使在单个浏览器中运行多个测试也是如此。

这段代码导入了Playwright的同步API中的Page类,然后定义了一个名为test_basic_test的测试函数,它的参数是一个Page对象。在测试中,可以使用Page对象进行页面操作和断言检查,例如,通过调用goto()方法导航到一个URL,或者通过调用expect()方法执行断言检查。由于该测试函数期望接收一个Page对象,因此可以使用Playwright Pytest插件来自动地创建和销毁浏览器上下文和页面对象,从而使测试更加简单易用。

使用测试钩子(Using Test Hooks)

您可以使用各种固定装置在测试之前或之后执行代码,并在它们之间共享对象。例如,具有自动使用功能的范围function固定装置的行为类似于 beforeEach/afterEach。具有module自动使用功能的作用域固定装置的行为类似于 beforeAll/afterAll,它在所有测试之前和之后运行。

这段代码演示了如何使用 Pytest 和 Playwright 来自动化测试一个 Web 应用程序。 @pytest.fixture 装饰器用于定义一个测试用例之前和之后要执行的代码块。 scope = "function" 表示该代码块将在每个测试函数运行之前和之后运行一次。 autouse=True 表示该代码块将自动使用,而无需在测试函数中显式调用。

在此示例中,before_each_after_each 代码块使用了一个 page 对象,该对象表示一个浏览器页面。它通过 Page 类从 playwright.sync_api 模块导入。page.goto 方法用于在每个测试用例之前访问网页。使用 yield 关键字来告诉 Pytest 执行测试用例代码,然后再继续执行 afterEach 代码块。

test_main_navigation 测试用例函数接受一个名为 page 的参数,该参数是 before_each_after_each 代码块返回的 page 对象。expect(page).to_have_url("https://playwright.dev/") 用于检查页面的 URL 是否与指定的 URL 匹配,这是使用 Playwright 提供的 expect 函数实现的。


每天晚上来学习

视频号直播进行中


入门篇_编写测试用例的评论 (共 条)

分享到微博请遵守国家法律