PlayWright系列(2):如何写测试脚本

简介: PlayWright系列(2):如何写测试脚本

大家好,我是阿萨。昨天安装了PlayWrigh,也写了第一个测试用例。今天就针对昨天的测试用例简单介绍下。写测试用例最主要的是要有断言,定位器,fixture(一直不喜欢这个词被翻译成夹具)和钩子函数。今天就简单介绍下PlayWright的这些简单用法。学完后就可以写测试脚本了。


Playwright断言是专门为动态网络创建的。检查会自动重试,直到满足必要条件。Playwright内置了自动等待功能,这意味着它在执行操作之前会等待元素的可操作性。Playwright提供一个期望函数来编写断言。

看一下下面的测试例子,看看如何使用定位器和网络优先断言来写测试。


import refrom playwright.sync_api import Page, expect
def test_homepage_has_Playwright_in_title_and_get_started_link_linking_to_the_intro_page(page: Page):    page.goto("https://playwright.dev/")    
# 标题中 包含“PlayWright".    expect(page).to_have_title(re.compile("Playwright"))    
# 创建一个定位器    get_started = page.get_by_role("link", name="Get started")   
 # 查看属性中值是否严格匹配      expect(get_started).to_have_attribute("href", "/docs/intro")  # 点开始link     get_started.click()      # 期望URL中包含intro      expect(page).to_have_url(re.compile(".*intro"))


断言


PlayWright提供了expect 功能来等待直到期望的条件满足。



import refrom playwright.sync_api import expectexpect(page).to_have_title(re.compile("Playwright"))


定位器


定位器是Playwright的自动等待和重试功能的核心部分。定位器代表了一种在任何时候都能找到页面上的元素的方法,用来对元素进行操作,如.click .fill等。


from playwright.sync_api import expect
get_started = page.get_by_role("link", name="Get started")expect(get_started).to_have_attribute("href", "/docs/installation")get_started.click()


测试隔离


PlaywrightPytest插件是基于测试fixture的概念,如内置的页面fixture,它被传递到你的测试中。由于浏览器上下文,页面在测试之间是隔离的,这相当于一个全新的浏览器配置文件,每个测试都有一个新的环境,即使在一个浏览器中运行多个测试。


from playwright.sync_api import Page
def  test_basic_test(page: Page):


使用测试钩子

你可以使用各种夹具在你的测试之前或之后执行代码,并在它们之间共享对象。一个函数范围的夹具,例如,带有autouse的行为就像beforeEach/afterEach。而模块范围的夹具与autouse的行为类似于beforeAll/afterAll,在所有的测试之前和之后运行。



import pytestfrom playwright.sync_api import Page
@pytest.fixture(scope="function", autouse=True)def before_each_after_each(page: Page):    print("beforeEach") # 打开主页面.     page.goto("https://playwright.dev/")      yield       print("afterEach")    def test_main_navigation(page: Page):  # 使用expect 断言.      expect(page).to_have_url("https://playwright.dev/")


你学会了吗?如果觉得阿萨的内容对你有帮助,欢迎围观点赞。

相关文章
|
2月前
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
3月前
|
人工智能 自然语言处理 JavaScript
专为 Claude Code 设计的基于 YAML 的 Playwright MCP 自动化测试
YAML配置结合Claude Code与Playwright MCP,将自动化测试变得人人可用。通过简洁的YAML语法替代复杂的JavaScript代码,解决传统测试中冗长、硬编码和复用性差等问题。自然语言描述测试步骤,AI解析执行,支持多环境切换与智能报告生成,极大降低技术门槛,提升团队协作效率。无论是开发、QA还是产品经理,都能轻松参与测试流程,真正实现可读、易维护的自动化测试新范式。
|
8月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
211 35
|
8月前
|
前端开发 JavaScript Java
通过ChatGPT生成测试用例和测试脚本(2)
通过ChatGPT生成测试用例和测试脚本
180 21
|
10月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
344 59
|
10月前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
232 58
|
10月前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
262 50
|
10月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
10月前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
135 1
|
10月前
|
JSON 测试技术 数据格式
Playwright 测试报告器
Playwright 测试报告器
375 4