NightmareJSとphantomJSとpuppeteerのパフォーマンス検証してみた
JavaScriptNode.jsPhantomJSnightmarejspuppeteer
1/28/2018

このページはなに?

リリース後5分以内に重要なURL(100個程度)に対してe2eテストが出来る技術を探したいのです。 あと、ヘッドレスブラウザが沢山あるので、主要どころは触ってみたいという動機も。

登場言語

  • phantomJS
    • Webkitベースのヘッドレスブラウザ。開発も止まりブラウザのバージョンが古いのでモダンなデザインが崩れてきました。phantomJS2も出たのでそちらなら大丈夫かもしれません。
  • NightmareJS
    • Phantom.jsのラッパー。内部ブラウザとしてElectronを採用しています。
  • puppeteer
    • ヘッドレスChromeを操作するnodeモジュールです。

検証方法

YahooのTOPにアクセスし、画面キャプチャを取得し、終了するまでの時間を計測します。 プログラムコードは最小単位で。通信速度はほぼ一定。

結果

2b709010-6d51-e841-230d-5621dc2cc67c

結論

pupeteerが一番パフォーマンスが良かったので採用します。1.0.0もリリースされましたし。 NightmareJSがphantomJSより遅かったのが面白かったです。phantomJSよりソースコードを簡略にリーダブルに記述できるけどElectronが重いのかな…?

account_circle

Daisuke Kobayashi

alternate_email

d.covayashi@gmail.com

outbound

copyright

Tlazolteotnia