打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Playwright系列:第8章 Playwright的高级功能
Playwright提供了许多高级功能,如录屏、性能测试、输入模拟等。这些功能可以帮助我们实现更复杂和强大的自动化测试。

录屏
Playwright可以录制浏览器测试过程中的视频,这对回归测试和问题定位非常有帮助。

录屏原理
· Playwright使用Chromium的 animation screencast API来捕获屏幕,并将屏幕画面保存为视频帧。
· 测试过程中的所有交互、导航等浏览器行为都会被录制下来。
· 最终,Playwright将视频帧组合成完整的视频,并保存到指定路径。

录屏步骤
1. 在启动浏览器时,通过浏览器类型的launch()方法传入视频参数,如视频名称、最大运行时长等。例如:
browser = playwright.chromium.launch(video={'path': 'test.mp4'})
2. 运行测试脚本,在测试过程中,Playwright会同时录制视频。
3. 测试结束后,视频会被保存到之前指定的路径,如test.mp4。
4. 可以播放生成的视频,查看测试执行过程中的每一个步骤。

Python示例
from playwright.sync_api import sync_playwright
def run(playwright): browser = playwright.chromium.launch(video={'path': 'test.mp4'}) page = browser.new_page() page.goto("http://whatsmyuseragent.org/") page.click("text=What's My User Agent?") browser.close()
with sync_playwright() as playwright:run(playwright)
这个测试脚本在运行过程中进行了录屏,并生成了test.mp4视频,录制了整个测试过程。

Node.js示例
const { chromium } = require('playwright');
(async () => { const browser = await chromium.launch({ video: { path: 'test.mp4' } }); const page = await browser.newPage(); await page.goto('http://whatsmyuseragent.org/'); await page.click('text=What\'s My User Agent?'); await browser.close();})();

Java示例
import com.microsoft.playwright.*;
public class Example { public static void main(String[] args) { Playwright playwright = Playwright.create(); ChromiumBrowserType chromium = playwright.chromium(); Browser browser = chromium.launch( new BrowserType.LaunchOptions() .setVideo(new VideoOptions()                 .setPath(Paths.get("test.mp4")))); Page page = browser.newPage(); page.navigate("http://whatsmyuseragent.org/"); page.click("text=What's My User Agent?"); browser.close(); playwright.close(); }}
性能测试
Playwright可以通过以下方式评估网页性能:
· 页面性能指标:使用
page.evaluate(() => JSON.stringify(window.performance.getEntries()))
可以获取页面加载过程的性能指标,如domContentLoaded时间、load时间等。

· 网络请求指标:使用
page.evaluate(() =>  JSON.stringify(performance.getEntries()))
可以获取页面发出的所有网络请求,及每个请求的持续时间、响应时间等指标。

· CPU和内存指标:Playwright可以监控浏览器进程的CPU和内存占用情况。在测试结束 generate metrics 的报告中会包含这些指标。

· 帧率指标:如果启用了video录屏,Playwright会计算出整个测试过程的帧率信息。

· 响应时间指标:使用page.evaluate(的代码可以手动记录自定义的时间戳,Playwright会基于这些时间戳计算出响应时间。

性能测试步骤
1. 启动带metrics参数的浏览器,启用性能监控,如:
browser = playwright.chromium.launch(metrics='all')
2. 访问需要测试的网页,运行测试脚本。
3. 测试结束后,使用browser.close()关闭浏览器。
4. Playwright会在关闭浏览器时生成metrics.json报告,包含各项性能指标。
5. 分析metrics.json报告,查找网页性能瓶颈。
6. 针对性优化网页,重新测试并比较指标,完成性能测试 iterations。

Python示例
from playwright.sync_api import sync_playwright
def run(playwright): browser = playwright.chromium.launch(metrics='all') page = browser.new_page() page.goto("https://www.example.com/") browser.close()
with sync_playwright() as playwright: run(playwright)
这个测试脚本访问了example.com网站, Playwright会在测试结束时生成metrics.json报告,包含页面加载时间、网络请求时间、CPU占用率等指标。
Node.js示例和Java示例类似,这里不再赘述。

通过实例专栏模式,从下面几个方面开启自动化测试成长模式:
1. Python算法,标准库扎实编程功底
2. pyunit、pytest扎实测试框架功底
3. selenium、cypress、playwright、requests等扎实各分层测试场景能力
4. 面试题大全专栏,扎实各类面试场景
5. 通过打卡监督促进自己周期性的编码,保持持续提升
6. 其他各类根据大家所提方向,开展专栏持续输

24小时限时加入通道


总结
Playwright提供了丰富的高级功能,可以大大提高我们的自动化测试能力。理解这些功能的原理和使用方式,可以帮助我们编写出更加强大和智能的测试脚本
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
不用写一行代码!Python最强自动化神器!
不用写一行代码!Python最强自动化神器Playwright!
python+playwright 学习-50 pytest-playwright 多账号操作解决方案
Playwright安装及基本用法
盘点一个使用playwright实现网络爬虫的实战案例
微软开源Node.js浏览器自动化库——playwright
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服