软件测试|web自动化测试神器playwright教程(三十六)

简介: 软件测试|web自动化测试神器playwright教程(三十六)

playwright Trace Viewer 追踪功能

前言

在我们日常执行自动化测试工作的过程中,经常会遇到一些偶发性的bug,但是因为bug是偶发性的,我们不一定每次执行都能复现,所以我们在测试执行的时候,追踪用例执行就变得非常重要了。playwright提供了一个Playwright Trace Viewer工具来追踪测试执行,这是一个GUI工具,我们可以通过它探索记录的 Playwright 测试跟踪,可以在测试的每个操作中前后移动,并直观地查看每个操作期间发生的情况。

Trace Viewer 追踪功能

可以使用browser_context.tracing API 记录跟踪,代码如下所示:

from playwright.sync_api import Playwright, sync_playwright, expect

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    context.tracing.start(screenshots=True, snapshots=True, sources=True)
    page = context.new_page()
    page.goto("https://playwright.dev")
    context.tracing.stop(path="trace.zip")



with sync_playwright() as playwright:
    run(playwright)

我们可以看到,在文件夹中会多出一个名为trace.zip,我们可以使用playwright cli或者在浏览器中打开保存的跟踪trace.playwright.dev。命令如下:

playwright show-trace trace.zip

文件查看

运行上述命令后,我们可以查看生成的trace.zip内容,我们可以单击左侧的操作或者上方的时间轴来查看测试痕迹,并且查看操作前后页面的状态。在测试的每个步骤中检查日志、源和网络。跟踪查看器创建一个 DOM 快照,因此我们可以与其完全交互,打开 devtools 等。如下图:

在这里插入图片描述

使用示例

我们以在百度首页进行搜索的操作为例,记录我们的操作过程,代码如下:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    context.tracing.start(screenshots=True, snapshots=True, sources=True)
    page = context.new_page()
    page.goto("https://www.baidu.com/")
    page.locator("#kw").click()
    page.locator("#kw").fill("playwright")
    page.locator("#kw").press("Enter")
    with page.expect_popup() as page1_info:
        page.get_by_role("link", name="microsoft/playwright - GitHub").click()
    page1 = page1_info.value

    context.tracing.stop(path="trace.zip")

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

查看文件

我们可以通过上面介绍的命令行方式可以打开trace.zip文件,这个方法我们现在不做赘述,我们来介绍另外一个方法,就是通过访问https://trace.playwright.dev/,选择我们录制好的trace.zip文件,将其拖拽到页面中,即可打开。

image.png

我们可以从trace中获得如下信息

  • 页面展示

我们可以看到我们每一步操作的页面截图,查看页面展示是否完整,如下所示:

image.png

  • 查看操作前后的页面变化,通过点击不同按钮,查看页面变化

image.png

  • 展示操作完整信息,操作的时间点,耗时,元素定位等信息都会被展示

image.png

总结

本文主要介绍了playwright的追踪工具Trace Viewer的使用,Trace Viewer功能非常强大,提供的信息非常完整,便于我们去定位问题。

相关文章
|
8天前
|
Web App开发 测试技术 API
Playwright 测试报告中显示的标签和注释。
Playwright 测试报告中显示的标签和注释。
83 57
|
5天前
|
JSON 测试技术 数据格式
Playwright 测试报告器
Playwright 测试报告器
16 4
|
5天前
Playwright 测试重试
Playwright 测试重试
13 2
|
7天前
|
Web App开发 JavaScript 测试技术
Playwright 测试夹具
Playwright 测试夹具
8 1
|
7天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
16 1
|
2天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
5天前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
|
6天前
|
Web App开发 数据库 索引
Playwright 测试并行性
Playwright 测试并行性
10 0
|
25天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
86 3
|
7天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
79 44