​初学者的自动化测试路线图:Playwright和TypeScript

测试对于确保软件运行良好非常重要。测试自动化通过使用特殊的工具和程序快速准确地进行测试使这变得更容易。这有助于检查软件是否完成了它应该做的事情、它的性能如何以及它是否可靠。

通过自动化重复测试任务,团队可以显着加快测试过程,扩大测试覆盖范围,并提高软件产品的整体质量。值得注意的是,测试自动化在敏捷和 DevOps 等当代软件开发方法中发挥着关键作用,使团队能够以更精简、更高效的方式交付优质的软件产品。

什么是Playwright?

Playwright是软件测试行业最新的测试自动化工具。它由微软开发和支持,是UI和API测试的最佳工具之一。Playwright不需要任何复杂的配置。像Typescript、断言库、测试运行器等所有内容都默认打包在Playwright中。

使用Playwright的用户可以像使用手机一样使用Chrome、Edge、Firefox 和 Safari 等网络浏览器拍照、录制视频或在社交媒体上与他人互动。

  • Playwright官方文档:

    https://playwright.dev

什么是TypeScript?

TypeScript 是 JavaScript 的超集,为该语言添加了静态类型。Playwright 是一个用于自动执行浏览器操作的工具,例如单击按钮、填写表单和在页面之间导航。TypeScript 提供类型检查和其他高级功能,可以改善与 Playwright 合作时的开发体验。

为什么PlayWright使用TypeScript?

Playwright 与 TypeScript 的结合为 Web 应用程序测试提供了强大的解决方案。Playwright支持自动化浏览器测试,支持模拟跨各种浏览器的用户交互。TypeScript为JavaScript添加了静态类型和高级功能,从而提高了代码质量和可维护性。

Playwright的主要特点和能力:

1. 自动化浏览器测试:Playwright通过提供与Web浏览器交互的高级API来简化端到端测试。

2.类型安全:TypeScript的静态类型确保代码的正确性,在开发早期捕获错误并提高代码的可维护性。

3. 测试框架:Jest、Mocha或Jasmine等流行框架可以与Playwright和 TypeScript 一起使用来定义测试用例并断言预期结果。

4.页面对象模型(POM):实现POM允许将网页封装为对象,使测试模块化并且更易于维护。

5. 持续集成 (CI):将 Playwright 测试集成到 CI 管道中,以便在代码更改时进行自动测试,确保及早检测到回归。

6. 报告和分析:Playwright支持生成详细的测试报告进行分析,帮助识别和诊断问题。

7. 自动等待:Playwright 在执行操作之前自动等待元素可操作,从而消除了人为超时的需要并减少了测试不稳定。

8. 浏览器上下文:Playwright 为每个测试创建一个浏览器上下文,相当于一个全新的浏览器配置文件,以零开销提供完整的测试隔离。创建新的浏览器上下文速度很快,只需几毫秒。

9. 跟踪和调试:Playwright 提供内置跟踪功能,可在测试运行期间捕获执行跟踪、视频和屏幕截图,帮助识别和调试问题并消除不稳定的测试。

10. 支持Shadow DOM和框架:Playwright的选择器可以穿透 Shadow DOM 并无缝进入框架,从而允许在测试期间与这些上下文中的元素进行交互。

11. 跨语言支持:Playwright支持多种编程语言,包括TypeScript、JavaScript、Python、Java和 .NET (C#),使具有不同语言偏好的团队能够使用其首选语言进行协作并为测试工作做出贡献。

图片

与Playwright一起使用的推荐 IDE 是 Visual Studio Code (VS Code)。

VS Code 是一款流行的轻量级代码编辑器,为TypeScript、JavaScript和调试功能提供出色的支持。它为Playwright提供无缝的开发体验,能够高效地编写、调试和测试 Playwright 脚本。

然而,值得注意的是,Playwright 是一个多功能框架,你也可以根据喜好使用其他IDE。一些开发人员还使用IntelliJ IDEA或WebStorm等JetBrains IDE进行Playwright开发。这些IDE提供代码完成、调试和集成终端支持等功能。

前提步骤

在本文中,在实际演示过程中,我们针对各自的库和应用程序使用了以下版本:

1.Playwright版本:1.42.1

2.VS Code版本:1.87.2

3.Node JS版本:v18.18.1

下载并安装VS代码

  • 要下载VS code,请访问其官方网站并选择社区版本的 .exe 文件。

    (https://code.visualstudio.com/download)

  • 下载完成后,启动 .exe 文件并继续安装 VS Code。

  • 可以参考官方网站提供的说明来获取安装VS code的指导。

    (https://code.visualstudio.com/docs/setup/windows)

在Windows上安装节点

  • 下载Node.js '. MSI 的安装程序,访问Node.js官方网站:

    https://nodejs.org/en/download/

  • 运行Node.js安装程序

  • 双击 .msi 安装程序

  • 选择“下一步”直至“完成”按钮

  • 使用“ C:\Users\Admin> node -v ”命令验证Node.js是否已正确安装。如果Node.js已完全安装在你的系统上,命令提示符将打印已安装的Node JS的版本

图片

图片

安装Playwright

安装Playwright有两种方法。

1.使用命令行

  • npm init playwright@latest

图片

2. 使用扩展

  • 打开代码编辑器:启动你首选的代码编辑器。例如,如果你使用的是 Visual Studio Code (VS Code),请在系统上打开它。

图片

  • 新建项目:创建一个新项目并在VS Code中打开。

图片

  • 导航到扩展市场:在代码编辑器中查找扩展市场。在VS Code中,你可以在左侧边栏或按 Ctrl+Shift+X 找到它。

  • 搜索 Playwright 扩展:在扩展市场中,搜索 Playwright 扩展。可以通过在搜索栏中输入“Playwright”来找到它。

图片

  • 安装扩展:找到Playwright扩展后,单击其旁边的“安装”按钮。等待安装过程完成。

图片

  • 安装Playwright:按Ctrl + shift + P并在搜索框中搜索“Playwright”关键字。单击“安装Playwright”按钮并安装必要的浏览器。

图片

图片

图片

测试用例创建

为了编写第一个脚本,我们首先需要创建一个javascript或typescript文件。

在此打字稿中,文件扩展名必须是 .ts。

图片

我们可以将以下代码添加到文件中。

 

import test, { expect } from "@playwright/test";import { chromium } from "playwright";test.describe("Navigation Test", () => {test("Verify that the user is navigate on the `Life At Jignect` page successfully", async () => {//Page and browservar browser = await chromium.launch();var context = await browser.newContext();var page = await context.newPage();//Navigate to the URLawait page.goto(`https://jignect.tech/`);//Locatorsconst menuText = page.locator(`//div[@id='site-header']//a[text()='About Us']`);const subMenuText = page.locator(`//div[@id='site-header']//a[text()='Life at Jignect']`);const headingText = page.locator(`//div[contains(@class,'heading')]`);//Actionsawait menuText.hover();await subMenuText.click();const titleText = await headingText.textContent();//Assertionexpect(titleText).toBe('Life At Jignect');});});

让我们理解上面概述的示例。

Imports:

  • 该代码首先从 @playwright/test 导入“test”和“expect”。它们分别用于编写测试和断言。

  • 它还从“playwright”导入“chromium”,这是 Playwright 可以控制的浏览器引擎。

测试说明:

`test.describe()` 函数定义了一个名为“Navigation Test”的测试套件。测试套件是测试特定特性或功能的测试用例的集合。

测试功能:

  • 在测试套件中,有一个使用 test() 函数定义的测试函数。此测试功能验证用户是否可以成功导航到“Life At Jignect”页面。

  • 测试函数是使用异步函数定义的,因为它包含异步操作(例如,启动浏览器、导航到 URL、与元素交互)。

页面设置:

  • 在测试函数中,使用 chromium.launch() 启动 Chromium 浏览器实例。

  • 使用 browser.newContext() 创建新的浏览器上下文。

  • 使用“context.newPage()”在浏览器上下文中打开一个新页面。

断言:

  • 最后,使用“expect()”函数进行断言,以验证从标题元素检索的“titleText”是否等于“Life At Jignect”。

运行创建的测试用例并检查结果

1. 编写测试脚本后,运行测试并仔细检查结果。

有两种方法可以运行测试脚本。

  • 打开终端并输入命令:npx playwright test {testname}。

图片

  • 另一种方法是单击代码中的绿色三角形。

图片

2. 测试运行结果

图片

结论

总之,Playwright与TypeScript的集成为 Web 应用程序测试提供了功能强大且高效的解决方案。Playwright 通过其高级 API 和全面的功能简化了浏览器自动化,而 TypeScript 通过静态类型和高级语言功能增强了代码质量和可维护性。它们共同使开发团队能够加速测试流程,提高测试覆盖率,并以简化且高效的方式交付优质的软件产品。通过利用 Playwright 和 TypeScript,团队可以有效、自信地实现其测试目标,确保其 Web 应用程序的可靠性和性能。

然而,需要注意第是,Playwright的一些限制:

  • 不支持全屏功能。

  • 不支持同时使用多个定位器。

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

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

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

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

相关文章

泛微OA提示信息换行

⭐️如果对你有用的话,希望可以点点赞,感谢了⭐️ WfForm.setTextFieldEmptyShowContent("field111", "格式模板:将顾客客诉原因文字描述清楚\n如:顾客因对美养师手法不满,觉得力度不够,没…

架构师:消息队列的技术指南

1、简述 消息队列(Message Queue, MQ)是一种异步通信机制,允许系统的各个组件通过消息在彼此之间进行通信。消息队列通过解耦系统组件、缓冲高峰期请求和提高系统的可扩展性,成为分布式系统中不可或缺的一部分。 2、工作原理 消息队列的基本工作原理是生产者将消息发布到…

远程办公生产力软件推荐,每天比同事早下班3个小时的秘密!

每天比同事早下班3个小时的秘密,终于被我找到啦! 网易GameViewer远程是一款高效便捷的远程办公工具,支持多点触控、虚拟鼠标键盘、4K画质和低延迟。其隐私屏功能保护文件安全。 只需三步:安装、登录、远控,即可轻松提升…

Docker-2.如何保存数据退出

在使用Docker时,我们常常需要修改容器中的文件,并且希望在容器重启后这些修改能够得到保留。 0.简介 使用Docker时有一个需要注意的问题:当你修改了容器中的文件后,重启容器后这些修改将会被重置,深入研究这个问题。 …

远程访问软路由

远程访问软路由主要涉及通过互联网从远程位置访问和控制基于软件的路由器系统。以下是远程访问软路由的一般方法: 一、远程访问软路由的方法 通过Web管理界面访问: 适用于大多数支持Web管理的软路由系统。用户只需在浏览器中输入软路由的公网IP地址或域…

react中的ref三种形式

1&#xff0c;字符串形式 <!-- 创建盒子 --><div id"test"></div> <script type"text/babel">class Demo extends React.Component{render(){return(<div><input type"text" refinput1 /><button onCl…

从销售到 AI 算法工程师 | 转行人工智能大模型(含面经裁员幸存指南)

我叫王东&#xff0c;90后&#xff0c;和大家分享一下我的人工智能转型之路。 农学毕业&#xff0c;投身互联网做销售 机遇难求&#xff0c;养殖梦碎 我是土生土长的农村人&#xff0c;小时候经常和小鱼小虾打交道&#xff0c;上大学的时候就选择了农学专业&#xff0c;想着…

OpenKylin--解压文件

tar zxf dotnet-sdk-6.0.425-linux-x64.tar.gzrootsanzk-pc:/home/dotnet# tar zxf dotnet-sdk-6.0.425-linux-x64.tar.gz参考&#xff1a; rootxxx-pc:/home/xxx# mkdir -p /home/dotnet && tar zxf dotnet-sdk-6.0.411-linux-x64.tar.gz -C /home/dotnet mkdir -p /…

STM32F1+HAL库+FreeTOTS学习13——二值信号量

STM32F1HAL库FreeTOTS学习13——二值信号量 1. 信号量2. 二值信号量3. 相关API函数3.1 创建二值信号量3.2 获取信号量3.3 释放信号量3.4 删除信号量 4. 二值信号量操作实验1. 实验内容2. 代码实现&#xff1a;3. 运行结果 上一期我们学习了FreeRTOS中的队列&#xff0c;这一期我…

【含文档】基于Springboot+Vue的高校失物招领平台(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

Excel中用位置筛选解法

有 2022 年 1 月的日销售额统计表如下所示&#xff1a; 筛选出偶数日的销售额&#xff1a; spl("E(?1).select(#%20)",A1:B32)#表示当前行号 免费课程、软件免费下载

免杀笔记 ---> 无痕Hook?硬件断点 Syscall!

说到Hook&#xff0c;我们有很多Hook&#xff0c;像Inline-Hook&#xff0c;我们也是用的比较多&#xff0c;但是正如我上一篇Blog说的&#xff0c;他会对内存进行修改&#xff0c;如果EDR或者AV增加一个校验机制&#xff0c;不断检验某一块内存&#xff0c;那么就算你用syscal…

SQL 性能调优

什么是 SQL 性能调优 SQL 性能调优是优化 SQL 查询以尽可能高效地运行的过程&#xff0c;从而减少数据库负载并提高整体系统性能。这是通过各种技术实现的&#xff0c;例如分析查询执行计划、优化索引和重写查询以确保最佳执行路径。目标是最大限度地减少执行查询所需的时间和…

【已解决】【Hadoop】【./bin的使用】bash: ./bin/hdfs: 没有那个文件或目录

在 Hadoop 环境中&#xff0c;决定何时在命令前添加 ./bin 和如何处理路径 /home/hadoop 与 /usr/local/hadoop 的问题&#xff0c;主要取决于你的当前工作目录和环境变量的设置。以下是一些指导原则&#xff1a; 何时使用 ./bin&#xff1a; 当前目录是 Hadoop 安装目录&…

高通AI应用程序开发1:SNPE 概述

1. 功能 The Qualcomm Neural Processing SDK&#xff08;SNPE&#xff09; 是 Qualcomm Snapdragon 软件加速运行时&#xff0c;用于执行深度神经网络。使用 SNPE&#xff0c;用户可以: 执行任意深度的神经网络 在 Snapdragon CPU、Adreno GPU 或 Hexagon DSP 上执行网络。 …

hadoop大数据平台操作笔记(下)

–接hive数据库的操作 函数的操作 聚合函数 函数名说明sun()求和max()最大值min()最小值count()统计avg()平均值 单行函数 数字类型 函数名说明abs()绝对值ceil()进一取整floor()去尾取整round()四舍五入pow()幂运算rand()随机值&#xff0c;获取0~1的小数percentile(字段…

卷轴模式:一种新型的电子商务营销策略

随着电子商务行业的蓬勃发展&#xff0c;各类创新营销策略层出不穷&#xff0c;旨在吸引更多消费者并提升销售额。在这之中&#xff0c;卷轴模式以其独特的优势和可观的收益逐渐受到业界renxb001的关注。本文将深入探讨卷轴模式的概念、优势、应用场景以及如何参与其中。 卷轴…

企业平台API治理的重要性

当前&#xff0c;关于API治理的讨论多聚焦于设计治理&#xff0c;即确保API设计的统一。此为治理的基础&#xff0c;因为设计的不协调会带来严重问题。 尽管应重视企业API设计治理策略&#xff0c;但我们主张扩大视野&#xff0c;关注“平台API治理”。这包括对每个API的发现、…

vioovi视与视标准工时工具与ECRS工时分析软件:精益生产的新纪元

在当今快速变化的市场环境中&#xff0c;企业面临着前所未有的挑战&#xff0c;其中成本控制与效率提升成为制约其发展的关键因素。传统的标准工时工具在应对这些挑战时显得力不从心&#xff0c;其局限性日益凸显。而vioovi视与视标准工时工具的出现&#xff0c;则为企业实现精…

【Linux实践】实验六:LINUX系统管理

【Linux实践】实验六&#xff1a;LINUX系统管理 实验目的实验内容实验步骤及结果1. 包管理工具2. VMware Tools3. 修改主机名4. 网络配置① 临时修改② 永久修改 5. 查找文件6. 前后台执行7. 查看进程8. 结束进程 实验目的 4、掌握Linux下软件包管理&#xff0c;包括命令rpm、…