当前位置: 首页 > news >正文

【Playwright 】端到端自动化的开源框架

什么是Playwright?

Playwright是一个开源框架,用于对Web应用进行端到端测试。

什么是端到端测试?

这里的“端”,不是指A模块或B模块,而是可以理解为从前端到后端。举个例子,对于登录功能来说,如果只测前端,那么测试范围就是前端页面,可能会对后端接口进行mock。如果只测后端,那么测试范围就是后端接口等。而端到端呢,就是前端输入用户名密码,点击登录,与后端交互,查询数据库,鉴权,后端返回登录成功,前端进行页面跳转。端到端测试,可以理解为全流程测试,也可以理解为模拟用户场景测试。

Playwright框架特点

官方网站首页:https://playwright.dev/python/

总结下重点,一是跨浏览器、跨平台、跨语言;二是自动等待;三是多用户场景测试;四是只需要一次登录;五是可以录制脚本。

快速入门

在官网的顶部菜单可以切换不同编程语言的教程:

本文及后续文章均选择Python。

安装

安装Python的Playwright,这里结合了pytest:

pip install pytest-playwright

成功后安装浏览器:

playwright install

这里也可以不安装浏览器,而是在脚本里面指定现有浏览器路径。

示例

test_example.py

import re
from playwright.sync_api import Page, expectdef test_has_title(page: Page):page.goto("https://playwright.dev/")# Expect a title "to contain" a substring.expect(page).to_have_title(re.compile("Playwright"))def test_get_started_link(page: Page):page.goto("https://playwright.dev/")# Click the get started link.page.get_by_role("link", name="Get started").click()# Expects page to have a heading with the name of Installation.expect(page.get_by_role("heading", name="Installation")).to_be_visible()

执行pytest后默认会选择chrome在headless模式下运行,可以通过日志观察运行过程。

更新命令:

pip install pytest-playwright playwright -U

编写测试

访问url:

page.goto("https://playwright.dev/")

通过locator定位页面元素进行交互:

# Create a locator.
get_started = page.get_by_role("link", name="Get started")# Click it.
get_started.click()

也可以写成一行:

page.get_by_role("link", name="Get started").click()

常用的有以下方法:

更多请访问:https://playwright.dev/python/docs/api/class-locator

断言:

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

常见断言如下:

更多请访问:https://playwright.dev/python/docs/test-assertions

Playwright的test是相互独立的:

from playwright.sync_api import Pagedef test_example_test(page: Page):pass# "page" belongs to an isolated BrowserContext, created for this specific test.def test_another_test(page: Page):pass# "page" in this second test is completely isolated from the first test.

pytest的fixture也可以直接使用,比如在所有测试开始前和结束前执行某些操作:

import pytest
from playwright.sync_api import Page, expect@pytest.fixture(scope="function", autouse=True)
def before_each_after_each(page: Page):print("before the test runs")# Go to the starting url before each test.page.goto("https://playwright.dev/")yieldprint("after the test runs")def test_main_navigation(page: Page):# Assertions use the expect API.expect(page).to_have_url("https://playwright.dev/")

生成测试

使用codegen:

playwright codegen demo.playwright.dev/todomvc

然后就可以录制脚本了:

更多用法阅读:https://playwright.dev/python/docs/codegen

生成locators:

运行和调试

运行命令基本都是基于pytest,然后加了些参数:

pytest
pytest --headed
pytest --browser webkit
pytest --browser webkit --browser firefox
pytest test_login.py
pytest tests/test_todo_page.py tests/test_landing_page.py
pytest -k test_add_a_todo_item
pytest --numprocesses 2

调试通过Playwright Inspector进行:

可以根据IDE比如PyCharm或Visual Studio,查找相应调试方法。

Trace viewer

监控Playwright,开启命令:

pytest --tracing on

打开监控:

playwright show-trace trace.zip

如果你打算做前端UI自动化,可以试试Playwright这款开源框架。

参考资料

https://playwright.dev/python/

https://learn.microsoft.com/zh-cn/training/modules/build-with-playwright/2-introduction-to-playwright

http://www.jsqmd.com/news/415509/

相关文章:

  • 【matlab】GUI句柄
  • 专业的文件上传漏洞检测工具,支持263+绕过技术、代理抓包、动态扫描
  • C++中的友元 之六
  • 五款免费AI视频生成神器,效果炸裂!
  • STM32F103C8T6 驱动 180° 舵机(SG90)超详细教程
  • 【开题答辩全过程】以 共享单车使用情况预测模型的设计与实现为例,包含答辩的问题和答案
  • C++中的友元 之五
  • 互斥锁
  • 数据库的应用-第一天
  • P3035 [USACO11DEC] Umbrellas for Cows S 题解
  • AI Compose Commit:用 AI 智能重构 Git 提交工作流
  • 题解:P11567 建造军营 II
  • C++中的友元 之四
  • 哈萨克斯坦旅游出行笔记
  • 2026年广州名士表手表维修推荐榜单评测:非官方维修网点服务与售后中心选择指南 - 十大品牌推荐
  • Gin 框架中的规范响应格式设计与实现
  • Computer Vision (Prof. Andreas Geiger, University of Tbingen)
  • QOJ #7324. Eulerian Orientation 题解
  • 2026年广州摩凡陀手表维修推荐榜单:非官方维修网点服务评测与选择指南 - 十大品牌推荐
  • 本次AIGC论文助手精心整理并发布了十大高效AI写作工具的详细专业测评分析
  • 最可爱の树剖姐姐
  • 距国自然申报仅剩20天!您确定自己的本子“读懂“2026新规了吗?
  • C++中的友元 之三
  • C++中的友元 之二
  • AI:RAG
  • NCE-Flow 是什么?新概念英语开源学习系统安装与使用教程
  • 远方好物:4年暴涨200万会员,GMV破20亿!它不投广告、不搞流量,凭什么杀出重围?
  • chili3d 是什么?开源在线3D建模工具安装与使用教程
  • 专家安全测试_动态安全服务_移动 APP 漏洞扫描修复工具
  • 对话“五度妙笔”|小核酸药物市场规模与投资前景分析