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/")


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

相关文章
|
3月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
|
4月前
|
测试技术 Shell
shell脚本写的班级管理系统测试用例
shell脚本写的班级管理系统测试用例
58 1
|
4月前
|
JSON 测试技术 API
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
78 3
|
11天前
|
SQL 存储 分布式计算
Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】
【4月更文挑战第7天】Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】
16 0
|
18天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
1月前
|
数据采集 数据处理 开发工具
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
|
1月前
|
前端开发 Java 测试技术
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)
【2月更文挑战第14天】《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程) 前面几篇宏哥介绍了两种(java和maven)环境搭建和三大浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本。前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先宏哥搭建好的环境中创建首个完整的自动化测试脚本,让小伙伴或者童鞋们提前感受感受,也是为了激起大家的学习兴趣。宏哥的个人经验是:自动化脚本编写比较容易,最大的困难去如何去写测试断言。自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段。
42 1
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)
|
3月前
|
测试技术 Shell 开发工具
Playwright 系列(13):如何调试测试用例
Playwright 系列(13):如何调试测试用例
Playwright 系列(13):如何调试测试用例
|
4月前
|
关系型数据库 MySQL Shell
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
52 0
|
17天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
26 0

热门文章

最新文章