当前位置:   article > 正文

Playwright系列:第8章 Playwright的高级功能

sync_playwright的所有作用

下方查看历史精选文章

重磅发布 - 自动化框架基础指南pdfv1.1
大数据测试过程、策略及挑战

测试框架原理,构建成功的基石

在自动化测试工作之前,你应该知道的10条建议

在自动化测试中,重要的不是工具

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示例

  1. from playwright.sync_api import sync_playwright
  2. def run(playwright):
  3. browser = playwright.chromium.launch(video={'path': 'test.mp4'})
  4. page = browser.new_page()
  5. page.goto("http://whatsmyuseragent.org/")
  6. page.click("text=What's My User Agent?")
  7. browser.close()
  8. with sync_playwright() as playwright:
  9. run(playwright)

这个测试脚本在运行过程中进行了录屏,并生成了test.mp4视频,录制了整个测试过程。

Node.js示例

  1. const { chromium } = require('playwright');
  2. (async () => {
  3. const browser = await chromium.launch({
  4. video: { path: 'test.mp4' }
  5. });
  6. const page = await browser.newPage();
  7. await page.goto('http://whatsmyuseragent.org/');
  8. await page.click('text=What\'s My User Agent?');
  9. await browser.close();
  10. })();

Java示例

  1. import com.microsoft.playwright.*;
  2. public class Example {
  3. public static void main(String[] args) {
  4. Playwright playwright = Playwright.create();
  5. ChromiumBrowserType chromium = playwright.chromium();
  6. Browser browser = chromium.launch(
  7. new BrowserType.LaunchOptions()
  8. .setVideo(new VideoOptions()
  9.                  .setPath(Paths.get("test.mp4"))));
  10. Page page = browser.newPage();
  11. page.navigate("http://whatsmyuseragent.org/");
  12. page.click("text=What's My User Agent?");
  13. browser.close();
  14. playwright.close();
  15. }
  16. }

性能测试

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示例

  1. from playwright.sync_api import sync_playwright
  2. def run(playwright):
  3. browser = playwright.chromium.launch(metrics='all')
  4. page = browser.new_page()
  5. page.goto("https://www.example.com/")
  6. browser.close()
  7. with sync_playwright() as playwright:
  8. 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小时限时加入通道

c4f023cc542f89322c813ad85a2bed26.png

总结

Playwright提供了丰富的高级功能,可以大大提高我们的自动化测试能力。理解这些功能的原理和使用方式,可以帮助我们编写出更加强大和智能的测试脚本

0d92b69e430ab90ba71787491410a63c.jpeg

114cde8c187f708589c90dac2ffa07c6.png

微信搜一搜 或 长按加群

624e547e0d3d6134171f684a8a4423d7.png

开源优测

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/277821
推荐阅读
相关标签
  

闽ICP备14008679号