惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
GbyAI
GbyAI
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
B
Blog
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
雷峰网
雷峰网
爱范儿
爱范儿
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
U
Unit 42
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
Jina AI
Jina AI
P
Proofpoint News Feed
A
About on SuperTechFans
I
InfoQ
F
Fortinet All Blogs
L
LangChain Blog
T
Tailwind CSS Blog

晚花行乐

马克卡尼在2026年达沃斯论坛上的讲话(阅读材料) | 晚花行乐 鸡娃如何用力才是恰到好处 | 晚花行乐 读万卷书,行万里路的辩证关系 | 晚花行乐 反对培训机构掐尖招生 | 晚花行乐 小泽和建国会谈最后10分钟全文(阅读材料) | 晚花行乐 来看看 DeepSeek 怎么鸡娃 | 晚花行乐 谈谈基本功 | 晚花行乐 惠普 ProDesk SFF PC 各系列参数对比 | 晚花行乐 解决瘦客户机上安装 Debian 12 启动失败问题 | 晚花行乐 意拾喻言:老外写的文言文 | 晚花行乐 笠翁对韵中的典故(十三元) | 晚花行乐 谈谈中考取消四小门 | 晚花行乐 亚马逊云科技产品免费试用攻略(3) - 对象存储服务 | 晚花行乐 在 Windows 10 LTSC 版本上安装 WSL2 | 晚花行乐 Debian 12 的常用配置项 | 晚花行乐 在 Debian 12 上安装 Nvidia 显卡驱动程序 | 晚花行乐 解决 Debian 12 关机失败问题 | 晚花行乐 解决 VS Code 自动更新版本后卡在连接界面 | 晚花行乐 观看巴黎奥运会有感 | 晚花行乐 在 Windows10 上安装惠普旧打印机驱动程序 | 晚花行乐 欢迎关注公众号:晚花行乐 | 晚花行乐 如何编写拼写检查器 | 晚花行乐 亚马逊云科技产品免费试用攻略(2) - 云服务器 | 晚花行乐 Pandas 中 axis 参数的理解(附实例) | 晚花行乐 我打算命个名,叫什么什么 Manager | 晚花行乐 上海武康路历史建筑一览 | 晚花行乐 Python 实现简单的数学表达式解析并处理 | 晚花行乐 观看马拉松的感悟 | 晚花行乐 Python 保存 Cookies 到文件并再次读取 | 晚花行乐 如何为 Hugo 静态网站添加评论功能 | 晚花行乐
前端测试工具 TestCafe 简介 | 晚花行乐
2019-10-12 · via 晚花行乐

TestCafe 是一款 Node.js 库,用来实现 web页面的自动化测试,支持多种浏览器,将来还有接口测试的计划。

特点

下面通过和 Puppeteer 的对比来总结一些 TestCafe 的特点(顺便带上 selenium):

对比PuppeteerTestCafeSelenium
语言JavascriptJavascript/TypeScript多种 binding 语言
兼容浏览器仅Chrome系列多种浏览器(包括 IE)多种浏览器(包括 IE)
测试框架不面向测试,无框架本身就是测试框架无框架
工作原理通过WebSocket 协议与 chrome 的通信通过设置代理,将用户的行为传递给被测页面通过 wire protocol 和 浏览器 通信

对比

Selenium 已无需多介绍。Puppeteer 的介绍见 Puppeteer 实现 web 自动测试 并不是专门用于测试的库,而仅仅是对 CDP 的封装。

所以用途广泛,只要是需要浏览器的地方,比如渲染页面、截图等,都可以拿 Puppeteer 来编程实现。

但是如果将 Puppeteer 用于测试,不仅需要配合 测试框架,更重要的还有需要自己编写页面对象,而且由于 Puppeteer 的 API 仍然比较底层(比如许多的 waitFor,和 browser-page-frame-element 的一系列对象结构),自己编写页面对象的工作量会很重。

工作原理

从上文 特点 一节表格中可以看出,Puppeteer、Selenium 的工作原理的共同特点是,通过底层协议和浏览器通信。如下图所示:

这显然需要浏览器厂商的支持。和 Puppeteer、Selenium 这些官方、半官方支持的库不同,TestCafe 走出了一条反方向的自力更生的路。

TestCafe 不使用底层协议和浏览器通信,而是自己建立了一个 Server ,然后去打开一个浏览器访问这个 Server(或者提供一个地址,让别人来访问 Server),访问的时候,Server 将测试用例中的步骤,以 Js 注入的方法实现。所以只要能运行 js 的浏览器,就能被 TestCafe 调用,大大提高了兼容性。如下图所示,图中的 URL 代理就是这个 Server

了解这个代理的存在,对编写 TestCafe 用例代码非常有帮助。

同时 TestCafe 自己就是一个测试框架,不仅内置了测试用例管理(fixture-test 结构)、还封装了测试中经常用到的工具,例如:强大的选择器 Selector、多实例并行(concurrency)执行、Hook函数(就是before、after一类的函数)、自动截图(静态图像、视频)、失败重跑机制、输出测试报告等。而且当真正编写测试用例时,会更多的体会到作者的用心,良好的封装简化了测试用例的编写。

如何选择

如果你需要常规的浏览器动作、比如截图、渲染页面等;或者纯粹的页面测试,比如前端性能测试,可以使用 Puppeteer. 如果你需要方便快捷的编写功能测试用例,则可以尝试使用 TestCafe.

进一步阅读

如果想进一步了解 TestCafe 的用法,请继续阅读 前端测试工具 TestCafe 测试代码结构

各位读后有什么想法,请在下方留言吧!如果对本文有疑问或者寻求合作,欢迎 联系邮箱邮箱已到剪贴板

精彩评论