新一代自动化测试神器Playwright

这篇具有很好参考价值的文章主要介绍了新一代自动化测试神器Playwright。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

转载请注明出处❤️

作者:测试蔡坨坨

原文链接:caituotuo.top/4bedb73c.html


你好,我是测试蔡坨坨。

说到WebUI自动化测试,首当其冲的当属Selenium,在很长的一段时间内,Selenium统治着Web自动化,Selenium其实经历了四个阶段,从2006年发布的Selenium 1.0到最新的Selenium 4.8.3。

  • 2006年,Selenium 1.0发布

    Selenium 1.0包含Selenium IDE(浏览器插件,可以帮助我们录制并生成脚本,对于不会代码的同学来说,它是一个非常好的开始,但现在基本被淘汰了)、Selenium Grid(分布式,将一套脚本分发到不同的机器上执行,功能非常强大,现在还在使用)、Selenium RC(脚本控制浏览器实现自动化的原理,但是它的实现并不完善,到Selenium 2.0时代被WebDriver替代)。

    同年,Google工程师Simon Stewart发起了一个名为WebDriver的项目,它也是一个自动化测试工具,彼时刚刚起步,后来它也成为Selenium的竞品之一。

  • 2009年,Selenium 2.0发布

    2009年,在Google测试自动化会议上,Selenium和WebDriver两个团队的开发人员在沟通后决定合并这两个项目,新项目被命名为Selenium Web Driver,也就是Selenium 2.0。很多人接触Selenium,也是从Selenium 2.0开始的。WebDriver的实现原理其实就是在Web浏览器我们的脚本之间有一个WebDriver,通过WebDriver协议去驱动并操作浏览器(具体实现+源码解析可参考往期文章「Selenium底层逻辑源码解析」)。

    WebDriver的作者是这样解释二者合并的原因:“一方面WebDriver解决了Selenium存在的缺点(例如:可以绕过JavaScript沙箱,WebDriver有出色的API),另一方面Selenium解决了WebDriver存在的问题,还有就是Selenium主要贡献者和WebDriver的作者都认为合并项目是为用户提供最优秀框架的最佳途径。”

    Selenium 2.x(WebDriver)真正兴起是在2014年开始,到2016年左右成为Web自动化最热门的框架。几乎谈及Web自动化,那就是Selenium。它不仅在Web自动化测试领域很火,在爬虫领域也是非常热门。

  • 2016年,Selenium 3.0发布

    这个版本并没有引入新的工具,主要是加强了对浏览器的支持。

    完全移除了Selenium RC;WebDriver暴露一个供浏览器接入的API,通过各浏览器厂商提供的Driver来接入;将内置的Firefox Driver剔除;支持Firefox通过GRCKO Driver来接入Selenium;通过Apple提供的Safari Driver来接入Safari;通过Edge Driver支持IE接入。

    所以,3.x和2.x其实没有太大的区别。

  • 2021年,Selenium 4.0发布

    在Selenium 3.x中,与浏览器的通信基于JSON-wire协议,因此Selenium需要对API进行编解码。而Selenium 4遵循W3C标准协议,Driver与浏览器之间通信的标准化使得它们可以直接通信。

    除此之外,Selenium 4还做了一些其他的改动,可参考往期文章「Selenium 4 有哪些不一样?」。

由于Selenium在3.x和4.x两个版本的迭代中并没有发生多大的变化,因此Selenium一统天下的地位也由于新框架的出现变得不那么稳固。

2020年左右出现的Cypress、TestCafe、Puppeteer,在技术雷达中被誉为后Selenium时代Web UI自动化的三驾马车。但是由于这三个框架都是基于JavaScript开发的,所以就需要测试人员熟悉JavaScript,并且都不支持Python,所以使用率并没有很高。

Playwright简介

2020年,微软(Microsoft)开源了一个名为Playwright的工具,与Selenium一样入门简单,支持多语言(Python、Java、Node.js、.NET),大厂出品,必属精品。它刚出现的时候,并没有多火,随着时间的推移,到2022年左右,Playwright已经被更多的人注意到并接受它,甚至比Selenium更好更强大。

Playwright是一款定位于端到端(End-to-End,端到端就是用于测试整个应用程序的流程是否符合预期的测试技术,模拟用户真实使用场景,为实现这一目标,该系统通常被视为黑盒子,也就是所谓的黑盒测试,主要通过GUI和API等公共接口对其进行操作)的测试工具。

虽然目前在国内Web自动化测试的扛把子还是Selenium,但是国外已经有很多企业都在使用Playwright,比如:Adobe、微软自带的某些项目(Visual Studio Code、Bing)、Disney Hostar等。

既然在市面上已经有非常成熟好用的Selenium框架,并且在持续的更新,社群也十分活跃,微软为什么还要整一个额外的自动化测试工具出来呢?

两个工具的定位不同,由于Playwright是后出来的工具,所以在一些细节方面会处理得更好。

  • 跨浏览器

    虽然Selenium提供了几乎所有浏览器的兼容和支持,但是还需要额外下载对应的浏览器版本的驱动,否则Selenium WebDriver可能就无法启动。而Playwright内置了各种浏览器以及浏览器驱动(支持所有现代渲染引擎,包括Chromium、Firefox和WebKit),并且不需要额外的升级和管理,这样一来整个自动化测试项目将会更加稳定。

  • 自动等待

    在使用Selenium的时候,我们通常会根据测试需求,在代码中加入各种等待,而在Playwright中没有所谓的隐式等待,而显示等待也已经封装好了,直接调用即可。

  • Web优先断言

    Playwright会根据网络环境进行自动断言,直到满足某种条件为止。

  • 追踪

    Playwright可以很方便地配置重试策略,并进行自动的追踪结果,以截图和录屏的方式进行记录。

  • 并行执行

    在Selenium中,执行测试用例是单线程的,但是在Playwright中,由于运行机制不一样(Selenium的指令发送是通过http协议,而Playwright则是使用socket协议;Playwright是通过上下文管理浏览器,相当于每一个测试用例都会创建一个独立的上下文,浏览器的上下文其实就是一个全新的浏览器,这种方式的好处就是在提速的同时又实现测试与测试之间的隔离,使得测试结果更加准确),所以可以实现并行执行。

  • 强大的工具集

    Playwright给我们提供了强大的工具集,例如:脚本录制工具codegen、脚本编写以及调试工具playwright等。

Playwright初体验

以Python语言为例,编写第一个Playwright脚本。

PS:Playwright 需要 Python >=3.7 版本

安装playwright

pip install playwright

安装内置浏览器

使用以下命令安装Playwright自带的各种浏览器:

playwright install

由于安装的内容比较多,所以这一步需要花费一点时间。

第一个Playwright脚本

1. 使用with方式启动
# author: 测试蔡坨坨
# datetime: 2023/4/8 2:18
# function: 第一个playwright脚本,使用with写法

from playwright.sync_api import sync_playwright, expect


def run(playwright):
    chromium = playwright.chromium  # or "firefox" or "webkit".
    browser = chromium.launch(headless=False)  # headless表示是否使用无头浏览器(也就是无GUI模式)
    page = browser.new_page()
    page.goto("https://caituotuo.top")
    # other actions...
    print(page.title())
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

# 这里使用的是with方法,Python中的with方法可以很方便处理一些需要提前设置,事后需要清理的工作
# playwright正好有上下文处理,所以使用with写法会使代码更加简洁
# 比如:
# with open("/caituotuo.txt") as f:
#     f.read()
#
# 非with方式可能存在问题:1.可能忘记关闭文件句柄 2.文件读取数据时发生异常,但是没有进行任何处理
# f = open("/caituotuo.txt")
# data = f.read()
# f.close()
2. 使用start()方式启动
# author: 测试蔡坨坨
# datetime: 2023/4/8 2:20
# function: 使用start()写法,直接实例化playwright同步方法

from playwright.sync_api import sync_playwright

playwright = sync_playwright().start()
chromium = playwright.chromium  # or "firefox" or "webkit".
browser = chromium.launch(headless=False)  # headless表示是否使用无头浏览器(也就是无GUI模式)
page = browser.new_page()
page.goto("https://caituotuo.top")
# other actions...
print(page.title())
browser.close()

总结

Selenium和Playwright都是流行的自动化测试工具,都拥有丰富的功能和API,都可以用于Web应用程序的自动化测试。选择一个测试框架,必须考虑日常工作中的场景以及当前的团队,进而选择合适的自动化测试工具来进行测试。而不是使用一个新的花里胡哨的框架,然后一段时间后因为它没有满足我们的需求而抛弃它。

当然,同时掌握多种技术栈再好不过了,正所谓“兵来将挡,水来土掩”,无论企业中选择哪种工具,都可以快速上手,也是自身能力的体现。

最重要的是要行动起来,多写多练,日积月累,自然会如鱼得水,真正把自动化测试在企业中落地,带来对应的效率和质量保障方面的提升。文章来源地址https://www.toymoban.com/news/detail-414051.html

到了这里,关于新一代自动化测试神器Playwright的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023 WAIC | 自然机器人向全球传递新一代智能自动化之声

    2023年7月6日-7月8日,备受瞩目的“2023世界人工智能大会”在上海世博中心及世博展览馆隆重召开,本届大会的主题是“智联世界,生成未来”,大会由上海市人民政府和国家发改委、工信部、科技部、国家网信办、中国科学院、中国工程院、中国科协等七部门共同主办,汇聚

    2024年02月13日
    浏览(57)
  • 充满可能的新一代辅助编程神器:Cursor

    随着技术的不断进步,人工智能已经逐渐成为了编程领域中不可或缺的一部分。而今天我们要为大家介绍的,就是一款基于 GPT4 智能引擎,由 OpenAI 开发出来的全新辅助编程神器 — Cursor 。 1、Cursor 编辑器 Cursor 作为一款智能代码编辑器,为程序员们提供了惊人的编程体验。它

    2024年02月02日
    浏览(54)
  • 基于ChatGPT的新一代辅助编程神器——Cursor

    Cursor 编辑器 Cursor 这是一款与 OpenAI合作并且基于GPT3的新一代辅助编程神器 。它支持多种文件类型,支持格式化文本,支持多种主题,支持多语言语法高亮,支持快捷键设置,支持代码折叠、括号匹配、自动缩进等功能等功能。最关键的是, 不用科学上网,它能帮助我们生成

    2024年02月06日
    浏览(56)
  • 新一代“垫图”神器,IP-Adapter的完整应用解读

    导读 不用训练lora,一张图就能实现风格迁移,还支持多图多特征提取,同时强大的拓展能力还可接入动态prompt矩阵、controlnet等等,这就是IP-Adapter,一种全新的“垫图”方式,让你的AIGC之旅更加高效轻松。 都是“垫图”,谁能还原你心中的图 “垫图”这个概念大家肯定都不

    2024年02月20日
    浏览(49)
  • 自动驾驶国家新一代人工智能开放创新平台产业化应用

    【摘要】:当前,全球新一轮科技革命和产业变革正孕育兴起,自动驾驶作为人工智能最重要的应用载体之一,对于加快交通强国、智能汽车强国建设,具有十分突出的战略意义。我国自动驾驶研发应用,面临技术、资金、应用等诸多挑战,为此,需要打造一套符合我国国情

    2024年02月14日
    浏览(69)
  • 自动化神器 Playwright 的 Web 自动化测试解决方案

      1. 主流框架的认识 总结: 由于Selenium在3.x和4.x两个版本的迭代中并没有发生多大的变化,因此Selenium一统天下的地位可能因新框架的出现而变得不那么稳固。 后续的Cypress、TestCafe、Puppeteer被誉为后Selenium时代Web UI自动化的三驾马车。但是由于这三个框架都是基于JavaScript开发

    2024年02月02日
    浏览(59)
  • 【开发神器】自动化测试、用 Apipost!

    Apipost是一体化研发协作平台,满足整个研发生命周期的业务需求。从产品经理确定需求,前后端一起过会讨论接口结构如何设计,提前设计mock好并分享给前端使用;后端进入代码开发并调试接口是否符合预期;接口正确后前后端联调并交付给测试;测试人员基于开发完成的

    2024年04月09日
    浏览(36)
  • 利用 Openai Gpt-3 实现下一代自动化测试

    人工智能 (AI) 正在飞速发展,最大的突破莫过于通过非营利研究公司 OpenAI。最初创建于 2015 年,作为与 Google DeepMind 的对立面,与研究社区自由合作并引领 AI 的道德发展,他们推出了几款革命性的产品,如 Dall-E、MuseNet、Whisper、Dactyl、Codex 和最受欢迎的 GPT语言模型。 GPT-3(

    2024年02月06日
    浏览(57)
  • 技术必备:接口自动化测试数据校验神器【JSonPath】

    我们今天不讲如何开发一款自定义开发校验规则库,而是给大家分享一款在开发自定义校验规则库或者常规的接口自动化测试时,经常会用到的一款数据提取神器: JSonPath 。 JSonPath 是一种简单的方法来提取给定 JSON 文档的部分内容。 JSonPath有许多编程语言,如 Javascript ,

    2024年02月09日
    浏览(49)
  • 推荐一款自动化测试神器---Katalon Studio

    Katalon Studio介绍 Katalon Studio 是一款在网页应用、移动和网页服务方面功能强大的自动化测试解决方案。基于 Selenium 和 Appium框架,Katalon Studio集成了这些框架在软件自动化方面的优点。这个工具支持不同层次的测试技能集。非程序员也可以快速上手一个自动化测试项目,同时也

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包