• ブラウザ処理だけを行い軽快に動作するヘッドレスブラウザとは
  • 2018/06/16
  • Category:
  • ブラウザが表示されないブラウザと聞いて、どのようなものが想像できるでしょうか?
    とはいえ、ブラウザを使わないブラウザというのは昔からあったりします。
    Unixの世界においてはw3mやlynxといったテキストのみで表現するテキストブラウザが存在します。
    実際のところ、ヘッドレスブラウザもまたターミナルで通常のブラウザ同様のhttpやりとりを行います。
    それではテキストブラウザと同じではないかという疑問もあるでしょうが、ヘッドレスブラウザと別の名前がついていることには意味があり、役割が異なります。

    なにに使うのか?

    ブラウザ操作を自動化することで効率化を図るE2E(End to End)テストを実施するなかで感じる欠点を、ヘッドレスブラウザは解消することができます。
    欠点とは、E2Eテストは実際にブラウザを操作するため時間がかかるというものです。
    テストを行う上で、サイトの表示を確認できるならば、必ずしもブラウザを起動する必要はありません。
    httpのやりとりを行い、htmlの構造だけを取得&テストできれば良いのです。
    そこで登場したのが、画面描画を行わない、ブラウザの処理だけを行う軽快に動作するヘッドレスブラウザが登場しました。

    Chrome DevTools Protocol

    PhantomJsやCasperという、node.jsを使うヘッドレスブラウザがありますが(実際はseleniumと組み合わせて使用)、最近ではGoogle Chromeが公式にヘッドレスモードを搭載することで、こちらが使用されています。
    Firefoxもヘッドレスモードが入っており、主要ブラウザがヘッドレスモードを搭載する流れになっています(そのためPhantomJsは開発終了のアナウンスが発表されています)。

    まとめ

    ユニットテストでコードのテストを完全にしても、ブラウザで動かしてみないと正しく動作するかはわかりません。
    最終的は目視と手動でのブラウザテストが必要となりますが、普段からヘッドレスブラウザでのテストを自動化することによって普段のテストを効率化しましょう!

    様々な分野で活躍するエンジニアが在籍するソリューション事業部はこちら

    ●Wantedly掲載情報(本当にやりたいことに辿り着きたい技術大好きエンジニア募集!)

    ●Wantedly掲載情報(エンジニア想いの環境でJavaやPHPにチャレンジしたいエンジニア募集!)

    ●Wantedly掲載情報(Angular/Reactを極めたいフロントエンジニア大募集!!)

Pocket