Posted at

NightmareJSとphantomJSとpuppeteerのパフォーマンス検証してみた

More than 1 year has passed since last update.


このページはなに?

リリース後5分以内に重要なURL(100個程度)に対してe2eテストが出来る技術を探したいのです。

あと、ヘッドレスブラウザが沢山あるので、主要どころは触ってみたいという動機も。


登場言語


  • phantomJS


    • Webkitベースのヘッドレスブラウザ。開発も止まりブラウザのバージョンが古いのでモダンなデザインが崩れてきました。phantomJS2も出たのでそちらなら大丈夫かもしれません。



  • NightmareJS


    • Phantom.jsのラッパー。内部ブラウザとしてElectronを採用しています。



  • puppeteer


    • ヘッドレスChromeを操作するnodeモジュールです。




検証方法

YahooのTOPにアクセスし、画面キャプチャを取得し、終了するまでの時間を計測します。

プログラムコードは最小単位で。通信速度はほぼ一定。


結果

スクリーンショット 2018-01-29 16.35.25.png


結論

pupeteerが一番パフォーマンスが良かったので採用します。1.0.0もリリースされましたし。

NightmareJSがphantomJSより遅かったのが面白かったです。phantomJSよりソースコードを簡略にリーダブルに記述できるけどElectronが重いのかな…?