首页 > 其他分享 >31.Playwright 自动化测试框架

31.Playwright 自动化测试框架

时间:2023-12-29 15:24:37浏览次数:47  
标签:playwright 浏览器 trace 31 Playwright 测试 自动化 page

Playwright 简介

 

Playwright 官网:https://playwright.dev/python/docs/intro

  • Web 自动化测试框架。
  • 跨平台多语言支持。
  • 支持 Chromium、Firefox、WebKit 等主流浏览器自动化操作。

Playwright 的优点

 
  • 支持所有流行的浏览器。
  • 速度更快,更可靠的执行。
  • 更强大的自动化测试配置。
  • 强大的工具库:Codegen、Playwright inspector、Trace Viewer。

Playwright 原理

 
scale 1000
participant 编程语言 as p
participant Playwright as playwright

participant puppeteer 
participant 浏览器 as browser

p -> playwright: 编程语言调用playwright库
playwright -> puppeteer: 调用 puppeteer 工具
puppeteer <-> browser: 通过 Chrome DevTools 协议(基于Websocket),调用浏览器

Playwright 与 selenium 对比

 
项目PlaywrightSelenium
是否需要驱动 需要对应浏览器 webdriver
支持语言 Java, Python, Javascript Java, Python, Javascript, Ruby, C#等
支持浏览器 Chrome、Firefox 等 Chrome、Firefox 等
通讯方式 websocket 双向通讯协议 http 单向通讯协议
使用的测试框架 无限制(pytest,unittest) 无限制(pytest,unittest)
测试速度
录制测试视频、快照 支持 支持
社区支持 微软 thoughtworks 公司

Playwright 核心工具

 
  • Codegen:通过记录你的操作来生成测试。 将它们保存为任何语言。
  • Playwright inspector: 检查页面、生成选择器、逐步执行测试、查看点击点、探索执行日志。
  • Trace Viewer:捕获所有信息以调查测试失败。 Playwright 跟踪包含测试执行截屏、实时 DOM 快照、动作资源管理器、测试源等等。

Playwright 环境安装

 

官网介绍:https://playwright.dev/python/docs/intro

  • 安装 playwright 插件
    • pip install pytest-playwright
  • 安装所需的浏览器
    • playwright install

Codegen

 
# 设定展示窗口大小
playwright codegen --viewport-size=800,600 地址
# 指定设备
playwright codegen --device="iPhone 11" 地址

其他参数:https://playwright.dev/python/docs/codegen

Codegen-保存登录状态

 
  • 场景:单点登录、验证码问题
# 保存登录状态
playwright codegen --save-storage=auth.json
# 加载认证信息
playwright codegen --load-storage=auth.json 地址

Playwright 常用API

 

https://playwright.dev/python/docs/input

常用API含义
start() 实例化playwright
chromium().launch() 打开chrome浏览器
new_page() 打开一个窗口页面
page.goto() 跳转到某个地址
page.locator(““) 定位某个元素
click() 点击元素
fill() 输入内容
keyboard().down() 键盘事件
screenshot() 截图操作

Playwright 使用实例

 
from playwright.sync_api import sync_playwright, expect
def test_playwright():
    # 实例化playwright
    playwright = sync_playwright().start()
    # 打开chrome浏览器,headless默认是True,无头模式,这里设置为False方便查看效果
    browser = playwright.chromium.launch(headless=False)
    # 打开一个窗口页面
    page = browser.new_page()
    # 在当前窗口页面打开测试人网站
    page.goto("https://ceshiren.com/")
    # 定位搜索按钮并点击
    page.locator("#search-button").click()
    # 定位搜索框并输入web自动化
    page.locator("#search-term").fill("web自动化")
    # 使用keyboard.down模拟键盘的enter事件
    page.keyboard.down("Enter")
    # 断言搜索结果
    result = page.locator(".list>li:nth-child(1) .topic-title>span")
    expect(result).to_contain_text("自动化测试")
    # 截图
    page.screenshot(path='screenshot.png')
    # 用例完成后先关闭浏览器
    browser.close()
    # 然后关闭playwright服务
    playwright.stop()

Trace Viewer 简介

 

https://playwright.dev/python/docs/trace-viewer-intro

Trace Viewer 使用

 
# trace 在代码中的配置
browser = chromium.launch()
# 实例化一个新的context
context = browser.new_context()
# 设置trace的参数信息
context.tracing.start(screenshots=True, snapshots=True, sources=True)
# 使用context生成的page实例进行对应的操作
page = context.new_page()
# 结束追踪
context.tracing.stop(path = "trace.zip")
# 打开trace
playwright show-trace trace.zip

标签:playwright,浏览器,trace,31,Playwright,测试,自动化,page
From: https://www.cnblogs.com/csfsz/p/17934939.html

相关文章

  • 经纬恒润轻量化网络自动化测试系统TestBase_DESKNAT重磅发布!
        经纬恒润桌面式网络自动化测试系统TestBase_DESKNAT2.0产品重磅发布! ......
  • 21.Web 自动化测试之复用浏览器
    复用浏览器简介 为什么要学习复用浏览器 自动化测试过程中,存在人为介入场景提高调试UI自动化测试脚本效率复用已有浏览器-配置步骤 需要退出当前所有的谷歌浏览器(特别注意)输入启动命令,通过命令启动谷歌浏览器找到chrome的启动路径(下一页ppt......
  • 22.Web自动化测试之Cookie登录
    cookie是什么 Cookie是一些认证数据信息,存储在电脑的浏览器上当web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入若用例需要经常执行,复用浏览器则不是一......
  • 20.自动化关键数据记录
    目录 行为日志记录步骤截图记录pagesource记录什么是关键数据 代码的执行日志代码执行的截图pagesource(页面源代码)记录关键数据的作用 内容作用日志1.记录代码的执行记录,方便复现场景2.可以作为bug依据截图1.断言失败或成功截图2.......
  • Cisco Secure Firewall 3100 Series, Firepower Threat Defense (FTD) Software 7.4.1
    CiscoSecureFirewall3100Series,FirepowerThreatDefense(FTD)Software7.4.1&ASASoftware9.20.2FirepowerThreatDefense(FTD)Software作者主页:sysin.org为什么选择CiscoSecure防火墙?CiscoSecure防火墙为行业最完善和开放的安全平台提供基础支持。世界一流的......
  • 学期:2023-2024-1 学号:20231426 《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计作业这个作业的目标通过教材内容了解文件,网络作业正文https://www.cnblogs.com/hhaxx/p/17933978.html教材学习内容总结《计算科学概论......
  • 2023-2024-1 20231307《计算机基础与程序设计》第十四周学习总结
    作业信息所属课程2023-2024-1-计算机基础与程序设计作业要求 第十四周作业(必学,选做)作业目标自学教材《C语言程序设计》第13章并完成实验作业正文https://www.cnblogs.com/lzt-/p/17933997.html教材学习内容总结13.1二进制文件和文本文件文本文件(也称ASCII......
  • 20231228
    年末越来越近了,我的心也越来越沉重了。今天晚上ml把我们去年写的「给明年的自己的信」发给我们了,我好像是最后一个得到的(不过有些人都没得到?),说实话要不是ml要搞这个活动我都已经忘记了。看了一下,我给自己写的是:省流:不要摆烂不能摆烂!不能摆烂!绝对不能摆烂!不可能摆烂!别......
  • # yyds干货盘点 # 盘点一个Python自动化办公实战案例(四)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo发上来......
  • 盘点一个Python自动化办公实战案例(四)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo......