当前位置:首页 > 技术知识 > 正文内容

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

maynowei9个月前 (08-26)技术知识112

前言

提起web自动化测试框架,我们首先想到的就是selenium,selenium基本上成为了必选的web自动化测试框架,测试工程师也必须学这个框架的使用,web自动化测试用例也依靠这个框架去执行。

直到2020年,微软开源了一个名为——playwright的工具,与selenium一样,入门简单,支持多语言,所以playwright开始被更多人注意到了,它甚至比selenium更好用更强大。

playwright的优势

我们上面说了,playwright甚至比selenium更好更强大,那么playwright有哪些优势呢?

  • 跨浏览器和平台跨浏览器。Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox跨平台。在 Windows、Linux 和 macOS 上进行本地测试或在 CI 上进行无头或有头测试。跨语言。在JavaScript、Python、.NET、Java中都使用 Playwright API测试移动网络。适用于 Android 和 Mobile Safari 的 Google Chrome 浏览器的本机移动仿真。相同的渲染引擎适用于您的桌面和云端。
  • 稳定性自动等待。Playwright 在执行动作之前等待元素可操作。它还具有一组丰富的内省事件。两者的结合消除了人为超时的需要——这是不稳定测试的主要原因。Web优先断言。Playwright 断言是专门为动态网络创建的。检查会自动重试,直到满足必要的条件。追踪。配置测试重试策略,捕获执行跟踪、视频、屏幕截图以消除薄片。
  • 运行机制多重一切。测试跨越多个选项卡、多个来源和多个用户的场景。为不同的用户创建具有不同上下文的场景,并在您的服务器上运行它们,所有这些都在一次测试中完成。可信事件。悬停元素,与动态控件交互,产生可信事件。Playwright 使用与真实用户无法区分的真实浏览器输入管道。测试框架,穿透 Shadow DOM。Playwright 选择器穿透影子 DOM 并允许无缝地输入帧。
  • 完全隔离-快速执行浏览器上下文。Playwright 为每个测试创建一个浏览器上下文。浏览器上下文相当于一个全新的浏览器配置文件。这提供了零开销的完全测试隔离。创建一个新的浏览器上下文只需要几毫秒。登录一次。保存上下文的身份验证状态并在所有测试中重用它。这绕过了每个测试中的重复登录操作,但提供了独立测试的完全隔离。
  • 强大的工具代码生成器。通过记录您的操作来生成测试。将它们保存为任何语言。调试。检查页面、生成选择器、逐步执行测试、查看点击点、探索执行日志。跟踪查看器。捕获所有信息以调查测试失败。Playwright 跟踪包含测试执行截屏、实时 DOM 快照、动作资源管理器、测试源等等。

环境安装

Playwright 是专门为满足端到端测试的需要而创建的。Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。在 Windows、Linux 和 macOS 上进行本地测试或在 CI 上进行测试。

注:playwright需要Python3.7或更新的版本

安装playwright只需要一条命令,就是pip安装命令,命令如下:

pip install playwright

安装好playwright之后,我们还需要安装所需要的浏览器,和selenium不同,我们不再是安装对应的浏览器驱动,所以不需要再头疼浏览器驱动版本的问题了。安装命令如下:

playwright install

运行命令后,会安装chromium,firefox 和 webkit浏览器,如下图:

注:如果安装报错,提示缺少Visual C++,则需要安装Microsoft Visual C++ Redistributable 2019

下载地址

直接点击就可以下载了,下载后直接安装即可。

总结

本文主要介绍了playwright的优势,以及讲解了playwright的安装,下一篇文章我们将介绍playwright的简单使用。

相关文章

网络安全常用术语(网络安全常用术语介绍)

黑客帽子之分白帽白帽:亦称白帽黑客、白帽子黑客,是指那些专门研究或者从事网络、计算机技术防御的人,他们通常受雇于各大公司,是维护世界网络、计算机安全的主要力量。很多白帽还受雇于公司,对产品进行模拟黑客...

Android主流UI开源库整理(android完整开源项目)

前言最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。标题隐...

Shopee新手指南:Shopee卖家中心用户界面介绍

1.Shopee各站点前台网页链接:2.Shopee各站点后台网页链接3.Shopee APP下载:安卓版下载链接:https://pan.baidu.com/s/1eSp8M1k#list/path...

一文弄懂 GO 的 互斥锁 Mutex !(互斥锁的使用方法)

在 Go 语言并发编程中,互斥锁(Mutex)是一个非常重要的同步原语。本文将深入介绍 Mutex 的使用方法、实现原理以及最佳实践。1. 什么是 Mutex?Mutex(互斥锁)是一种用于多线程编程...

打通 JAVA 与内核系列之 一 ReentrantLock 锁的实现原理

写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不...

Go语言进阶:时间轮(golang时间轮)

时间轮概念时间轮(Timing Wheel)是一种高效的定时任务调度数据结构,特别适合处理大量定时任务。它通过一个循环数组(轮盘)和多个槽位(buckets)来组织定时任务,每个槽位代表一个时间间隔。...