作者
,译者Puppeteer 1.0已经发布,其中进行了多项改进,包括对JavaScript堆栈以及页面性能的分析以及针对JavaScript、CSS的代码覆盖率信息。
Puppeteer是一个headless自动化工具,它同时也是Chrome和基于Chromium网页浏览器的API。Puppeteer利用Node.js和DevTools协议,是一款良好的Selenium WebDriver替代品。
除了自动化浏览测试这一典型使用场景之外,Puppeteer还可以应用于各种各样的浏览器自动化技术,包括重复执行任务、抓取内容以及生成屏幕截图等。Puppeteer要求的Node.js的最低版本要达到6.4,如果用户要使用更加现代的ES2015+ API(例如async/await)的话,用户的Node.js的版本要达到8.x或者更高。
该项目提供了一个运行于主机中的试用Puppeteer应用程序,它能够帮助用户对Puppeteer进行快速上手。
自从Puppeteer最开始发布以来,它普遍地作为一种更加简便的方式被应用于将自动化引入至开发人员的工作流中。许多开发人员编写了大量的教程,并且提供了它们使用Puppeteer进行工作时的反馈。
Valentino Gagliardi是一名JavaScript以及React咨询师,他在所写的教程《Using Puppeteer with Jest》中谈到:
Puppeteer给予了你无限的可能性。许多人都在使用Puppeteer来构建新的测试框架。它的API也得到了很大的改进,但是你必须要知道一些基本概念。
Gergely Nemeth是一名Node.js专家,他在博客《Simplicity of setting up Puppeteer》中谈到了Puppeteer与基于Selenium工具的比较:
不论如何,你想要运行一个Selenium测试你都需要一个或是本地的或是云端的Selenium服务器或者Selenium集群,并且还需要浏览器驱动来控制Chrome、Firefox或是其它的浏览器。这个过程需要的组件太多了,并且很难能完全配置正确。为Selenium编写调试测试代码也是极具挑战性的,即便是编写一些简单的测试也不那么容易,比如从测试用例中抓取控制台输入结果、能够让你看清正在发生的事情或者拦截请求的慢速测试(slowdown test)。
不是所有人都坚信Puppeteer是迈向正确方向的一步。Oren Rubin是Testim.io的CEO,Testim.io是一个机器学习测试自动化平台。Oren Rubin提出了一个问题,Puppeteer能否真正帮到开发社区,他在其中指出:
Selenium的过人之处在于他们说服了所有的浏览器提供商都支持了相同的低级API(这件事花费了很多年!他们试图说服Apple、Microsoft以及Google一起工作),他们甚至还用10种以上的语言(包括JavaScript)实现了这个API。
Puppeteer最大的局限在于它仅仅支持对Chrome和基于Chromium的浏览器的测试。如果你需要进行自动化的跨浏览器测试,你还是应该使用基于Selenium的解决方案。有许多工具能够简化Selenium驱动安装的安装复杂性,能够简化其测试过程以及配置过程。
查看英文原文:Google Releases Puppeteer 1.0
转自 http://www.infoq.com/cn/news/2018/01/puppeteer-1-released