NightmareJSとphantomJSとpuppeteerのパフォーマンス検証してみた
JavaScriptNode.jsPhantomJSnightmarejspuppeteer
1/28/2018
このページはなに?
リリース後5分以内に重要なURL(100個程度)に対してe2eテストが出来る技術を探したいのです。 あと、ヘッドレスブラウザが沢山あるので、主要どころは触ってみたいという動機も。
登場言語
- phantomJS
- Webkitベースのヘッドレスブラウザ。開発も止まりブラウザのバージョンが古いのでモダンなデザインが崩れてきました。phantomJS2も出たのでそちらなら大丈夫かもしれません。
- NightmareJS
- Phantom.jsのラッパー。内部ブラウザとしてElectronを採用しています。
- puppeteer
- ヘッドレスChromeを操作するnodeモジュールです。
検証方法
YahooのTOPにアクセスし、画面キャプチャを取得し、終了するまでの時間を計測します。 プログラムコードは最小単位で。通信速度はほぼ一定。
結果
結論
pupeteerが一番パフォーマンスが良かったので採用します。1.0.0もリリースされましたし。 NightmareJSがphantomJSより遅かったのが面白かったです。phantomJSよりソースコードを簡略にリーダブルに記述できるけどElectronが重いのかな…?