前端测试——端对端测试框架 Playwright 总结

news2024/9/24 13:22:21

在进行前端测试前,我们需要明确我们需要怎样的前端测试。

前端测试类型总结

前端应用测试分为几种常见类型:

端到端(e2e) :一个辅助机器人,表现得像一个用户,在应用程序周围点击,并验证其功能是否正确。常见的测试框架是 Playwright 。
单元:验证单独的、孤立的部分按预期工作。常见的测试框架是 Jest。
静态:在你写代码的时候捕捉错别字和类型错误。常见的是使用 Typescript 检查
每种前端测试都有其适用场景:

端到端测试:验证业务页面功能的基本可用。
单元测试:验证组件的复杂场景应用。
静态测试:大部分前端代码中都尝试可以引入,提高代码的可维护性。

端到端(e2e)特点

像一个用户去访问页面,不关心接口和前端组件的代码变化,只关注具体功能实现是否正常。

前端页面和组件变化频繁,但是提供的核心业务功能基本不会变化。因此可以使用端到端测试来确保应用的健壮性。

实践

项目初始化

npm init playwright@latest

package.json中添加

"scripts": {
    "test": "playwright test",
    "report": "playwright show-report"
},
# 进行测试
playwright test

# 查看测试报告
playwright show-report

编写测试用例

编写测试用例主要分为两种 ,一种是代码编写,另一种是通过录制点击生成相应的流程代码。我更偏向于先进行录制生成基本代码,再进行代码修改,最后完成整个测试流程

录制代码

使用 Vscode,下载插件 Playwright Test for VSCode

在这里插入图片描述

在这里插入图片描述

点击 Record new 将会弹出一个无痕模式的浏览器,在浏览器里输入需要测试的域名进行点击操作。就会自动生成代码了。

例如:输入网址 playwright.dev/docs/writin…

在这里插入图片描述

生成代码

在这里插入图片描述

编写代码

一般来讲编写测试代码,我们需要确认元素名,这里我推荐在录制情况下点击 Pick locator

在这里插入图片描述

在 Vscode 上方就会出现相应的元素,可以复制过来做我们期望的操作

在这里插入图片描述

最后就是一些期望代码的编写,这些地方只能根据业务的需求去编写代码了。

在这里插入图片描述

容器化

通常我们会把 e2e 测试放在持续集成的框架中,这个时候我们需要容器化去执行。因此我们需要将 playwright 容器化,在项目下新建 Dockfile

# Get the base image of Node version 16
FROM node:16

# Get the latest version of Playwright
FROM mcr.microsoft.com/playwright:focal

# Set the work directory for the application
WORKDIR /app

# Set the environment path to node_modules/.bin
# ENV PATH /app/node_modules/.bin:$PATH

# COPY the needed files to the app folder in Docker image
COPY package.json /app/
COPY tests/ /app/tests/
COPY config/ /app/config/

# Install the dependencies in Node environment
RUN npm install

在当前目录下根据Dockfile 构建一个新镜像

docker build -t playwright-docker . 

我们可以用以下命令去跑一次性的测试容器

docker run -it playwright-docker:latest npm run test

同时我们经常需要在测试中传递一些参数,在 docker 中使用 -e 可传递参数

docker run -it -e HOST='111' playwright-docker:latest npm run test

在代码中可以使用 process.env.HOST 获取

export const HOST = process.env.HOST ;

总结

前端测试可以从端对端测试整体应用开始,端对端测试可以提高前端的业务页面健壮性。 playwright 是其中一个不错的框架。支持录制代码、生成截屏报告等功能,简单易用。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 731789136,里面有各种测试开发资料和技术可以一起交流哦。

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

2024年【四川省安全员A证】及四川省安全员A证实操考试视频

题库来源:安全生产模拟考试一点通公众号小程序 四川省安全员A证是安全生产模拟考试一点通总题库中生成的一套四川省安全员A证实操考试视频,安全生产模拟考试一点通上四川省安全员A证作业手机同步练习。2024年【四川省安全员A证】及四川省安全员A证实操考…

vue3组件通信(父给子传参,子调用父的方法,父调用子的方法,顶层组件给底层组件传参,底层组件调用顶层组件的方法)

目录 1.父传子(父给子传参) 2.子传父(子调用父的方法) 3.父调用子的方法 4.顶层给底层传参,底层调用顶层的方法 5.模板引用 1.父传子(父给子传参) ①.步骤 父组件中给子组件通过绑定属性…

国内厉害的游戏开发公司有哪些?

中懿游游戏软件开发,中国有许多厉害的游戏开发公司,其中一些在国际上也享有盛誉。以下是一些在中国游戏开发领域中备受关注的公司: 腾讯游戏(Tencent Games): 作为中国最大的互联网公司之一,腾讯的游戏分支…

【鸿蒙应用ArkTS开发系列】- 沉浸式状态栏实现

文章目录 一、前言二、封装沉浸式状态栏管理类1、创建Demo工程2、封装状态栏管理类 三、编写页面实现沉浸式状态栏效果1、存储windowStage实例2、Page页面中实现沉浸式开启关闭功能2.1、开启沉浸式状态栏2.2、设置标题栏偏移量 一、前言 在应用开发中,页面跟状态栏…

算法练习Day20 (Leetcode/Python-回溯算法)

虽然看似进入了一个新章节,但其实还是前几天二叉树章节的延续。。 回溯算法 (以下内容摘抄自代码随想录): 回溯法解决的问题都可以抽象为树形结构,是的,我指的是所有回溯法的问题都可以抽象为树形结构&…

etcd-workbench一款免费好用的ETCD客户端,支持SSHTunnel、版本对比等功能

介绍 今天推荐一款完全免费的ETCD客户端,可以私有化部署: etcd-workbench 开源地址:https://github.com/tzfun/etcd-workbench Gitee地址:https://gitee.com/tzfun/etcd-workbench 下载 本地运行 从 官方Release 下载最新版的 jar 包&am…

详谈 springboot整合shiro

背景: 本章将进一步的落地实践学习,在springboot中如何去整合shrio,整个过程步骤有个清晰的了解。 利用Shiro进行登录认证主要步骤: 1. 添加依赖:首先,在pom.xml文件中添加Spring Boot和Shiro的相关依赖…

Unprocessing Images for Learned Raw Denoising

原文 RWA Image Dataset:the Darmstadt Noise Dataset Abstract 1、Introduction 1、传统图像去噪方法:分析图像属性、对噪声建模(传统方法好像总是这样,建立模型然后用数学方法贴近模型) TBD:找传统的…

开源自托管导航页配置服务Dashy本地搭建结合内网穿透远程访问

开源自托管导航页配置服务Dashy本地搭建结合内网穿透远程访问 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一…

网络编程--socket编程

这里写目录标题 套接字概念通信原理总结 预备知识网络字节序简介字节转换函数 IP地址转换函数为什么单独列出函数原型sockaddr结构体 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 套接字 概念 Socket本身有插座的意思,但他是进程之间网络通…

如何分析 JVM 内存瓶颈浅谈

背景: 当操作系统内存出现瓶颈时,我们便会重点排查那个应用占用内存过大。对于更深一步分析内存的使用,就进一步去了解内存结构,应用程序使用情况,以及内存如何分配、如何回收,这样你才能更好地确定内存的…

62.乐理基础-打拍子-二八

前置知识:61.乐理基础-打拍子-休止符打法-CSDN博客 通过前置知识,知道了四分音符、二分音符、附点二分音符、全音符以及它们各自对应的休止符拍子的打法,如下图,它们都是最简单的,因为它们都是一拍的整数倍&#xff0…

竞赛保研 基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 🔥 优质竞赛项目系列&#xf…

山海鲸开发者视角:帮助汽车制造商取得市场优势

山海鲸可视化是一款致力于数字孪生领域的产品,为各行各业提供专业的数据可视化解决方案。作为山海鲸开发者,我们在开发免费好用的数字孪生工具同时也希望能让大家通过多种解决方案了解我们软件的多种可能性,本文就为大家介绍我们的汽车行业解…

JUC并发编程 09——队列同步器AQS

目录 一.Lock接口 1.1Lock的使用 1.2Lock接口提供的 synchronized 不具备的主要特性 1.3Lock接口的所有方法 二.队列同步器(AQS) 2.1队列同步器的接口与示例 2.2AQS实现源码分析 ①同步队列 ②获取锁 ③释放锁 一.Lock接口 说起锁,你肯定会想到 synchron…

MY FILE SERVER: 1

下载地址 https://download.vulnhub.com/myfileserver/My_file_server_1.ova 首先我们需要发现ip 我的kali是59.162所以167就是靶机的 然后我们拿nmap扫一下端口 nmap -sV -p- 192.168.59.167 扫完发现有七个端口开放 按照习惯先看80 没看到有啥有用信息,用nikto扫一下 nik…

中文论文修改和润色哪个好写 papergpt

大家好,今天来聊聊中文论文修改和润色哪个好写,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:中文论文修改与润色:哪个更容易写&…

家校互通小程序实战开发01需求分析

目录 1 角色的划分2 用例分析3 创建业务数据源4 创建登录用户数据源总结 最近几年,随着移动互联网的深入发展,我们的日常生活和工作和微信已经紧密绑定。其实,有时候生活和工作的界限已经不明显,在我们的微信好友里既有家人、朋友…

助力打造清洁环境,基于美团最新YOLOv6-4.0开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题,公共环境下垃圾投放点都会有固定的值班时间,但是考虑到实际扔垃圾的无规律性,往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题,有些容易扩散的垃圾比…

VMware vcenter6.7安装(基于windows客户端)

一、下载vcenter6.7 1.下载地址,直接复制粘贴到web回车即可,这一步就不截图了。 从官网或者百旺网盘(可以自行搜索,或者私信我要) 二、安装部署vcenter6.7 将下载好的镜像文件拷贝到一台Windows机器上,…