Playwright快速入门(TypeScript版)

文章目录

  • 1. 前言
  • 1. 系统环境要求
  • 2. Playwright介绍
  • 3. 安装Playwright
  • 4. 运行示例测试
  • 5. HTML 测试报告
  • 6. 在UI模式下运行测试示例
  • 7. 更新Playwright版本

1. 前言

Playwright 相比 Selenium,具有多浏览器支持、现代化 API、更快性能、精细页面控制、自动等待元素、简单文件上传、强大网络层控制等优势,提供了更好的开发者体验。
学习Playwright可以大大提升了开发者的使用体验和测试效率。本文的大部分内容大来自官网https://playwright.dev/docs/intro,如有问题,可查看官方文档。

1. 系统环境要求

  • Node.js 18+
  • Windows 10+、Windows Server 2016+ 或适用于 Linux 的 Windows 子系统 (WSL)。
  • macOS 13 Ventura 或 macOS 14 Sonoma。
  • Debian 11、Debian 12、Ubuntu 20.04 或 Ubuntu 22.04、Ubuntu 24.04,基于 x86-64 和 arm64 架构。

2. Playwright介绍

Playwright Test 是专门为了满足端到端测试的需求而创建的。Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。在 Windows、Linux 和 macOS 上进行本地或 CI 测试,无头测试或使用适用于 Android 和 Mobile Safari 的 Google Chrome 的原生移动模拟进行测试。

3. 安装Playwright

可以通过使用 npm、yarn 或 pnpm 安装 Playwright。
命令分别如下:

npm init playwright@latest
yarn create playwright
pnpm create playwright

运行安装命令并选择以下内容以开始:

  • 在 TypeScript 或 JavaScript 之间进行选择(默认为 TypeScript)
  • 你的测试文件夹的名称(如果你的项目中已有测试文件夹,则默认为测试或 e2e)
  • 添加 GitHub Actions 工作流程以轻松在 CI 上运行测试
  • 安装 Playwright 浏览器(默认为 true)

安装完成之后会出现以下目录结构:
在这里插入图片描述

可以在 playwright.config 中添加 Playwright 的配置,包括修改你想要运行 Playwright 的浏览器。如果你在现有项目中运行测试,那么依赖将直接添加到你的 package.json。

tests 文件夹包含一个基本示例测试,可帮助你开始测试。有关更详细的示例,请查看 tests-examples 文件夹,其中包含为测试待办事项应用而编写的测试。

4. 运行示例测试

在这里插入图片描述
默认情况下,测试将使用 3 个工作线程在所有 3 个浏览器(chromium、firefox 和 webkit)上运行。这可以在 playwright.config 文件 中配置。测试在无头模式下运行,这意味着运行测试时不会打开浏览器。测试结果和测试日志将显示在终端中。

比如我只想让它在chrome上运行,就把其它两个注释掉即可。
运行同样可以通过使用 npm、yarn 或 pnpm ,命令分别如下:

npx playwright test
yarn playwright test
pnpm exec playwright test

这里在运行时不出现浏览器窗口是正常的,这个会在之后说到
在这里插入图片描述

5. HTML 测试报告

测试完成后,将生成 HTML 报告器,其中显示完整的测试报告,允许你按浏览器、通过的测试、失败的测试、跳过的测试和不稳定测试来过滤报告。你可以单击每个测试并探索测试的错误以及测试的每个步骤。默认情况下,如果某些测试失败,将自动打开 HTML 报告。
npm:

npx playwright show-report

yarn:

yarn playwright show-report

pnpm:

pnpm exec playwright show-report

输入命令会跳转到以下界面
在这里插入图片描述

6. 在UI模式下运行测试示例

npm:

npx playwright test --ui

yarn:

yarn playwright test --ui

pnpm:

pnpm exec playwright test --ui

使用 用户界面模式 运行测试,以获得更好的开发者体验,包括时间旅行调试、监视模式等。
在这里插入图片描述

7. 更新Playwright版本

通过运行以下命令来检查 Playwright 版本:
npm:

npx playwright --version

yarn:

yarn playwright --version

pnpm:

pnpm exec playwright --version

更新命令:
npm:

npm install -D @playwright/test@latest
# Also download new browser binaries and their dependencies:
npx playwright install --with-deps

yarn:

yarn add --dev @playwright/test@latest
# Also download new browser binaries and their dependencies:
yarn playwright install --with-deps

pnpm:

pnpm install --save-dev @playwright/test@latest
# Also download new browser binaries and their dependencies:
pnpm exec playwright install --with-deps

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142350.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

医学数据分析实训 项目三 关联规则分析作业--在线购物车分析--痹症方剂用药规律分析

文章目录 项目三 关联规则分析一、实践目的二、实践平台三、实践内容任务一:在线购物车分析(一)数据读入(二)数据理解(三)数据预处理(四)生成频繁项集(五&…

什么是 HTTP/3?下一代 Web 协议

毫无疑问,发展互联网底层的庞大协议基础设施是一项艰巨的任务。 HTTP 的下一个主要版本基于 QUIC 协议构建,并有望提供更好的性能和更高的安全性。 以下是 Web 应用程序开发人员需要了解的内容。 HTTP/3 的前景与风险 HTTP/3 致力于让互联网对每个人…

[数据集][图像分类]茶叶病害分类数据集6749张7类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):6749 分类类别数:7 类别名称:["Unlabeled","alg…

项目实现:云备份②(文件操作、Json等工具类的实现)

云备份 前言文件操作实用工具类设计文件属性的获取文件的读写操作文件压缩与解压缩的实现文件目录操作 Json 实用工具类设计编译优化 前言 如果有老铁不知道当前项目实现的功能是什么的话,可以先移步这篇文章内容: 云备份项目的介绍 其中介绍了云备份项…

在 Dify 中高效利用 SiliconCloud API

引言 SiliconCloud 以其丰富的模型库和卓越的处理速度,在 Dify 平台上实现高效工作流和智能代理变得轻而易举。本文将指导您如何在 Dify 中集成 SiliconCloud 的强大功能。 集成 SiliconCloud 模型 步骤一:设置 SiliconCloud 账户 首先,您…

5. Python之数据类型

Python数据类型有数值型,字符串型,布尔型等等 内置函数type(),可以查看变量的数据类型 。 一、数值类型 整数(没有小数部分,包含正整数,负整数,0,默认为十进制数)&…

PHP:强大的Web开发语言

PHP:强大的Web开发语言 一、PHP 简介及优势 PHP 的基本概念 PHP(PHP: Hypertext Preprocessor)即 “超文本预处理器”,是一种通用开源脚本语言,最初由 Rasmus Lerdorf 于 1994 年创建。它可以在服务器上执行&#xf…

正则表达式匹配整数与浮点数失败与解决方案

正则表达式匹配整数与浮点数失败与解决方案 问题描述问题分析解决方案总结 问题描述 在处理数据的时候需要提取文本内整数与浮点数,这个时候想到使用正则表达式,咨询百度文心一言给出以下方案及参考代码 import re text "我有100元,…

华为地图服务功能概览 -- HarmonyOS自学7

华为地图服务式Harmony OS生态下的一个地图服务,为开发者提供强大而便捷的地图能力,助力全球开发者实现个性化地图呈现,地图搜索和路线规划功能。 主要包括七大功能:静态图,场景化控件,地点搜索&#xff0c…

函数的认识(二)

函数的基础知识可查看:函数的认识(一) (1)函数说明文档 函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。 我们可以给函数添加说明文档,辅…

Python 解析 Charles JSON Session File (.chlsj)

Charles 代理,是一款抓包软件,可以帮助我们抓取浏览器请求跟响应。 1、在 Filter 里面输入需要抓包的网址 2、右键 Export Session 3、文件类型选择 JSON Session File (.chlsj) 保存 4、解析响应的数据结构 response.body.text 是文本字符串。 # 导入…

Navicat使用 笔记04

Navicat调用数据库 1.创建一个自己的链接(文件-->新建连接-->MySQL) 进入到这个界面中: 【注意:密码是下载登录软件时设定过的】 创建一个连接完成(通过双击激活)。 2.在创建好的连接中创建数据库…

Linux-mysql5.7-mysql8.0安装包下载及安装教程,二合一

一、安装包下载 1、手动下载 MySQL :: Download MySQL Community Server 2、wegt下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 登录自己的liunx ,复制上面的命令下载。 二、手动安装 1、上传压缩包到…

蓝桥杯-基于STM32G432RBT6的LCD进阶(LCD界面切换以及高亮显示界面)

目录 一、页面切换内容详解 1.逻辑解释 2.代码详解 code.c(内含详细讲解) code.h main.c 3.效果图片展示 ​编辑 二、页面选项高亮内容详解 1.逻辑解释 2.读入数据 FIRST.第一种高亮类型 code.c(内含代码详解) code.…

kubernetes中pause容器的作用与源码详解

概述 摘要:上一篇文章我们介绍了kubernetes是如何通过pause容器来构建一个pod。本文我们对pause容器做一个总结,并再此基础上次深入浅出,从pause容器的源码详细了解pause容器的实现原理。 正文 pause容器是什么 在 Kubernetes 中&#xff…

超高速传输 -- Fixed Grid与Flexible Grid

Fixed Grid 传统的40波/80波DWDM系统采用Fixed Grid固定光谱方式,波长间隔固定为100GHz或者50GHz,中心频率也是固定的。在Fixed Grid方式下,带宽无法灵活调配。 随着系统中信号速率的提升,光信号的频谱也在变宽;当多速…

SpringSecurity原理解析(八):CSRF防御解析

一、CsrfFilter CsrfFilter 主要功能是用来防止csrf攻击 一、什么是CSRF攻击 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF&#xff0c…

有关C# .NET Core 过滤器的使用

想用一个过滤器实现特定接口的审核日志记录,结果报了错,看了看感觉有些基础要补,所以想记录下来 错误: 在属性过滤器中使用了依赖注入,结果在应用在控制层接口时报了传参的错 //过滤器 public class AuditRecordFil…

数据时代,职场离不开的远程控制工具

中秋了大概率是在正常放假了吧,如果突发遇到需要你处理的文件怎么办呢?其实有远程操作工具你就不用到办公室了。向日葵远程控制软件这些工具就可以帮我们远程实现控制电脑操作。如果你也有这方面需求就继续看吧,这次我将介绍几款我用过效果比…

(c++)字符串相加(真没想到字符串还有相加运算)

#include<iostream> #include<string> using namespace std;int main() {string ch1 "你好";string ch2 "再见";string ch3 ch1 ch2;cout << ch3 << endl;system("pause");return 0; } 运行结果&#xff1a; 学了c…