Playwright提供了许多高级功能,如录屏、性能测试、输入模拟等。这些功能可以帮助我们实现更复杂和强大的自动化测试。Playwright可以录制浏览器测试过程中的视频,这对回归测试和问题定位非常有帮助。· Playwright使用Chromium的 animation screencast API来捕获屏幕,并将屏幕画面保存为视频帧。· 测试过程中的所有交互、导航等浏览器行为都会被录制下来。· 最终,Playwright将视频帧组合成完整的视频,并保存到指定路径。1. 在启动浏览器时,通过浏览器类型的launch()方法传入视频参数,如视频名称、最大运行时长等。例如:browser = playwright.chromium.launch(video={'path': 'test.mp4'}) 2. 运行测试脚本,在测试过程中,Playwright会同时录制视频。3. 测试结束后,视频会被保存到之前指定的路径,如test.mp4。4. 可以播放生成的视频,查看测试执行过程中的每一个步骤。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:///") page.click("text=What's My User Agent?") browser.close()
with sync_playwright() as playwright: run(playwright) 这个测试脚本在运行过程中进行了录屏,并生成了test.mp4视频,录制了整个测试过程。const { chromium } = require('playwright');
(async () => { const browser = await chromium.launch({ video: { path: 'test.mp4' } }); const page = await browser.newPage(); await page.goto('http:///'); await page.click('text=What\'s My User Agent?'); await browser.close(); })();
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:///"); 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') 3. 测试结束后,使用browser.close()关闭浏览器。4. Playwright会在关闭浏览器时生成metrics.json报告,包含各项性能指标。5. 分析metrics.json报告,查找网页性能瓶颈。6. 针对性优化网页,重新测试并比较指标,完成性能测试 iterations。from playwright.sync_api import sync_playwright
def run(playwright): browser = playwright.chromium.launch(metrics='all') page = browser.new_page() page.goto("https://www./") browser.close()
with sync_playwright() as playwright: run(playwright) 这个测试脚本访问了网站, Playwright会在测试结束时生成metrics.json报告,包含页面加载时间、网络请求时间、CPU占用率等指标。Node.js示例和Java示例类似,这里不再赘述。通过实例专栏模式,从下面几个方面开启自动化测试成长模式:3. selenium、cypress、playwright、requests等扎实各分层测试场景能力5. 通过打卡监督促进自己周期性的编码,保持持续提升Playwright提供了丰富的高级功能,可以大大提高我们的自动化测试能力。理解这些功能的原理和使用方式,可以帮助我们编写出更加强大和智能的测试脚本
|