ブラウザでのヘッドレステスト。 長所と短所

こんにちは。 この出版物は、今週からすでに開始されているWebテストの自動化コースの開始に向けられています。 読書をお楽しみください!



ヘッドレステストとは何ですか?



ヘッドレステストは、このUI自体を表示せずに、UIのコンポーネントのパフォーマンスをテストするためのブラウザーでの起動です。 このようなテストはブラウザでスクリプトを起動しますが、起動せず、UI自体を表示しません。







ヘッドレスブラウザを使用する必要があるのはなぜですか? このアプローチには多くの長所と短所があります。 ヘッドレスブラウザーを使用することはネットサーフィンにはあまり役立ちませんが、タスクの自動化とテストには不可欠です。



ヘッドレスブラウザーを使用する理由



お金を追いかけることは決まり文句ですが、これはトレンドの出現の重要な指標であり、したがって、あなたが間違いなく注意を払うべきものであると私はまだ考えています。 たとえば、Sauce LabsはソリューションをヘッドレステストするためのクラウドベースのソリューションであるSauce Headlessという新しいサービスをリリースしました。



Sauseの人は賢い人だと知っています。 彼らは無料で何も開発しません。 機能が必要であることを理解するために、ユーザーからフィードバックを得る必要があります。



私は彼らがヘッドレステストを開発するための探求において一人ではないことを確信しています。

ソフトウェア開発のライフサイクルをさらに進めると、テスターは開発者にどんどんフィードバックを提供する必要があります。 これを実現する1つの方法は、ヘッドレスブラウザーでクイックチェックを実行することです。



ソフトウェア開発の自動化



私はすべての手を使った自動化を目指していますが、自動化はテストだけではありません。

これは、ソフトウェア開発、品質管理またはテスト、DevOpsまたはインストールのライフサイクルで時間または労力を節約するために自動化できるすべての側面に関するストーリーです。 ヘッドレスブラウザは、強力な自動化ツールの1つです。



ヘッドレスブラウザは通常のブラウザよりも高速です



ヘッドレスブラウザーと通常のブラウザーの最も重要な違いの1つは、速度です。 実際、GUIを使用せずにブラウザーでページをロードする場合、CSS、JavaScriptのロード、およびHTMLのレンダリングに時間を費やす必要はありません。



その差はそれほど大きいとは言いませんが、場合によっては、速度の半分または15倍の増加を追跡できます。したがって、パフォーマンスが重要な場合は、ヘッドレスブラウザーが適しています。



ヘッドレスブラウザーでのスクレイピング



ヘッドレスブラウザーのもう1つの利点は、 Webサイトからデータを収集できることです。 これを行うために、ブラウザを手動で起動する必要はありません。 ヘッドレステクノロジーを使用して、HTMLを単純に廃棄できます。 また、ブラウザ全体のレンダリングは完全にオプションです。



あなたのケースがさまざまなサイトでスポーツ統計または価格比較を必要としているとしましょう。



データのみが必要なため、本格的なブラウザエッセンスを起動してマシンを不必要にロードすることは意味がありません。負荷が少ないほど、結果が早く得られるからです。 必ずしもテストであるとは限らず、適切なツールを使用するだけで機能します。 一般に、私はテスターがその分野のヘッドレスブラウザを過小評価していると信じています。



したがって、Webページからデータを取得する必要がある場合、ブラウザを開いてデータを開いて余分な負荷をかける必要はありません。必要な機能はすべて、ヘッドレスブラウザを提供できます。



開発者の時間を節約



多くの開発者がヘッドレスブラウザを使用してサイトとアプリケーションのユニットテストを行っていることを知っています。 ブラウザを手動で更新または起動せずにコマンドラインから使用できるため、多くの時間と労力が節約されます。 たとえば、 PhantomJS CookBookの著者であるRob Frizzelは、 TestTalksとのインタビューで、開発者がヘッドレスブラウザーPhantomJSを使用する理由を説明しました。

「PhantomJS自体はテストフレームワークではありませんが、信頼性を高める有用な「炭鉱の光線」です。 すべてのテストに合格すると、コードが本当に優れていると確信できるようになります。
ヘッドレスブラウザスクリプトによるパフォーマンス監視



ヘッドレスブラウザを使用する別のオプションは、ネットワークアプリケーションのパフォーマンスを監視することです。



一部のユーザーは、自動化された方法でレイアウトをテストするために、レンダリングを自動化し、ウェブサイトの画面のスクリーンショットを撮るのにも使用しています。



これが、GoogleがPuppeteerと呼ばれる新しいヘッドレスChrome APIを開発した理由の1つだと思います。 主に開発者を支援することを目的としています。



主なアイデアヘッドレスブラウザテスト



前のアイデアに加えて、ヘッドレスブラウザを使用するための他のオプションもあります。これについては、以下で説明します。



  1. モニターのないマシンでテストを実行します。
  2. データ設定;
  3. SSLテスト。
  4. 1台のマシン上の複数のブラウザーのシミュレーション。
  5. GUIのない​​Linuxなどのヘッドレスシステムでテストを実行します。
  6. PDFファイルの受信と視覚化。
  7. マークアップテスト。ヘッドレスブラウザーはHTMLとCSSを本格的なブラウザーとしてレンダリングできるため、スタイルを使用してテストできます。


ヘッドレスブラウザを使用したくない場合



もちろん、ヘッドレスブラウザの代わりにフルブラウザを使用したい場合があります。 例:



  1. 実際のユーザーをシミュレートする必要があります。
  2. テストの仕組みを確認する必要があります。
  3. デバッグが必要な場合、これはヘッドレスブラウザーでは注意が必要です。


人気のヘッドレスブラウザ



  1. Google Puppeteer-ヘッドレスブラウザーPuppeteerはNodeライブラリです。 DevToolsプロトコルを使用して、ヘッドレスChromeまたはChromiumを制御するための高レベルAPIを提供します。 フル(ヘッドレスではない)ChromeまたはChromiumを使用するように構成することもできます。
  2. バージョン59以降のGoogle Chrome。
  3. Firefoxバージョン55および56。
  4. PhantomJS -JavaScript APIのヘッドレスWebキット。 DOMツリー処理、CSSセレクター、JSON、Canvas、SVG形式など、さまざまなWeb標準を高速かつネイティブにサポートしています。 *現在、サポートされていません。 このため、使用しない場合があります。
  5. HtmlUnitは、Javaコード用のGUIがないブラウザーです。 HTMLドキュメントをモデル化し、ページを開いたり、フォームに入力したり、リンクをクリックしたりできるAPIを提供します。 「通常の」ブラウザと同様に。
  6. Splinter -Splinterは、ヘッドレスのPython指向のブラウザーです。 これはオープンソースであり、Pythonを使用してWebアプリケーションをテストするために使用されます。 たとえば、これを使用して、Webページへのアクセスや要素との対話など、ブラウザーのアクションを自動化できます。
  7. jBrowserDriver -Selenium WebDriver仕様と互換性のあるプログラム可能な組み込みWebブラウザードライバー-純粋なJavaのWebKitに基づくヘッドレス。


テストにいつヘッドレスブラウザを使用する必要がありますか?



この質問に対する答えは、テストの目的によって異なります。



ひとつには、「ヘッドレスブラウザーを使用しないでください。 実際のユーザーは絶対に使用しないので、なぜそうする必要があるのでしょうか?一方で、「ヘッドレスブラウザーは常に使用する必要があります。テストが高速で、問題が速いため、より良いことを意味します」



ご存知のように、各ポジションには支持者と反対者がいますが、ここでは特定の問題を解決する適切なツールを選択するだけです。



ジョブに最適なツールを使用し、これがエンドユーザーにどのように影響するかを常に自問する必要があることを忘れないでください。これらの2つの観点から選択するたびに、テストの目的を自問する必要があります。



確立された伝統によると、私たちはあなたのコメントを待っています。また、数時間後には私たちのコースについて詳細に学ぶことができる公開日があることを思い出してください。



All Articles