Google發布Puppeteer 1.0
英文原文:Google Releases Puppeteer 1.0
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 驅動安裝的安裝復雜性,能夠簡化其測試過程以及配置過程。
來自: InfoQ