ヘッドレスブラウザ Selenium (HTMLユニットドライバー)
ヘッドレス ブラウザは、グラフィカル ユーザー インターフェイスを持たない Web ブラウザです。視覚的に邪魔にならずにバックグラウンドで実行できます。時間とリソースを節約しながら、Web アプリケーションをテストする効率的かつ効果的な方法を提供します。このチュートリアルでは、ヘッドレス ブラウザとは何か、いつヘッドレス ブラウザ テストを使用するか、および を使用してテストを実行する方法について詳しく説明します。 Selenium.
ヘッドレスブラウザとは何ですか?
ヘッドレスブラウザはWebブラウザです グラフィカル ユーザー インターフェイスなし。 このプログラムはブラウザと同じように動作しますが、GUI は表示されません。
ヘッドレス ドライバーの例としては、次のようなものがあります。
- HTMLユニット
- 幽霊
- ファントムJS
- ゾンビJS
- Watir-ウェブドライバー
ヘッドレス ブラウザ テストをいつ使用するか?
今日のデジタル時代では、Web アプリケーションはさまざまなデバイスやプラットフォームと互換性を持つように開発されています。これは、アプリケーションがこれらのプラットフォーム間でシームレスに動作することを保証する必要がある Web サイト開発者にとって、しばしば課題となります。ヘッドレス ブラウザー テストは、開発者がグラフィック ユーザー インターフェイスを必要とせずに Web アプリケーションをテストできるため、この問題に対する理想的なソリューションです。ヘッドレス ブラウザー テストを使用すると、開発者は複数のコンポーネントと依存関係を持つ複雑な Web アプリケーションを簡単にテストできるため、開発の迅速化、バグのないコード、ユーザーの満足度の向上につながります。
ヘッドレスブラウザのテスト Selenium
Selenium は、ヘッドレスブラウザテストのための強力なツールであり、開発者は目に見えるユーザーインターフェースを必要とせずに自動テストを実行できます。バックグラウンドでテストを実行することで、 Selenium 時間とリソースを節約できると同時に、従来の UI ベースのテスト環境では明らかではない問題を特定するのにも役立ちます。これには、ヘッドレス設定でのみ明らかになるパフォーマンス関連の問題やレイアウトの問題が含まれます。ただし、ヘッドレス テストの制限を念頭に置き、従来の UI ベースの方法とのバランスをとって、包括的なテスト カバレッジを確保することが重要です。
ヘッドレス ブラウザの一般的な例
利用可能なヘッドレス ブラウザーは数多くあり、それぞれに独自の機能と利点があり、さまざまなユースケースに適しています。 以下でそれらについて説明します:-
ファントムJS
PhantomJSは、WebKitをレンダリングエンジンとして利用し、HTML5、CSS3、などのさまざまなWeb標準をサポートするヘッドレスブラウザです。 Javaスクリプト。画面キャプチャやページ自動化タスクに使用できます。オープンソースであり、複数のオペレーティング システムと互換性があります。
の例 Selenium ヘッドレスPhantomJSで Python
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # Set up PhantomJS options phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy() phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' # Set up the PhantomJS driver driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
クロム
Chrome は地球上で最も人気のあるブラウザであり、ヘッドレス機能も提供します。 複数のプラットフォームで使用でき、プログラミング言語とフレームワークをサポートします。 組み込みのデバッグ ツールと広範なドキュメントにより、テスト中に発生する可能性のある問題の使用とトラブルシューティングが簡単になります。
ヘッドレス Chrome の例 Selenium in Python
from selenium import webdriver from selenium.webdriver.chrome.options import Options # Set up Chrome options chrome_options = Options() chrome_options.add_argument('--headless') # Run Chrome in headless mode chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # Set up the Chrome driver driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
Firefox
Firefox は、テスト目的でヘッドレス ブラウザとしても使用できる人気の Web ブラウザです。 利用するメリットの一つに、 Firefox ヘッドレスブラウザとして最も優れている点は、軽量であることで、さまざまなオペレーティングシステムでテストするための多目的なオプションになります。さらに、豊富なドキュメントとコミュニティサポートにより、 Firefox ヘッドレス ブラウザ テクノロジを試してみたい人にとっては、優れた選択肢です。
ヘッドレスの例 Firefox Selenium in Python
from selenium import webdriver from selenium.webdriver.firefox.options import Options # Set up Firefox options firefox_options = Options() firefox_options.add_argument('--headless') # Run Firefox in headless mode # Set up the Firefox driver driver = webdriver.Firefox(options=firefox_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
ヘッドレスブラウザテストの利点
- テスト実行の高速化
- 費用対効果の高いテスト
- テスト範囲の改善
- テストの実行における柔軟性
- CI/CD パイプラインとの統合
ヘッドレスブラウザテストの欠点
- GUIの欠如
- デバッグの難しさ
- 限定的なブラウザサポート
HTMLユニットドライバー
HTML UnitDriver は、WebDriver の中で最も軽量かつ最速の実装ヘッドレス ブラウザです。 HtmlUnitをベースにしています。 として知られています ヘッドレスブラウザドライバーChrome、IE、Fireと同じですFox ドライバーですが、GUI がないため、画面上でテストの実行を確認できません。
HTMLユニットドライバの特徴
- HTTPS および HTTP プロトコルのサポート
- HTML 応答のサポート (リンクのクリック、フォームの送信、HTML ドキュメントの DOM モデルの実行など)
- Cookie のサポート
- プロキシサーバーのサポート
- 基本認証と NTLM 認証のサポート
- 素晴らしい Javaスクリプト サポート
- 送信メソッドの GET および POST のサポート
- サーバーに送信されるリクエストヘッダーをカスタマイズする機能
- サーバーからの応答に失敗した場合に例外をスローするか、適切なタイプのページとして返すかを決定する機能
HTMLUnit ドライバーを使用する手順 Selenium
ステップ1) In Eclipse次のコードをコピーします。標準の Selenium ライブラリ ファイルをプロジェクトに追加します。追加の jar ファイルは必要ありません。
package htmldriver; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class htmlUnitYest { public static void main(String[] args) { // Creating a new instance of the HTML unit driver WebDriver driver = new HtmlUnitDriver(); // Navigate to Google driver.get("http://www.google.com"); // Locate the searchbox using its name WebElement element = driver.findElement(By.name("q")); // Enter a search query element.sendKeys("Guru99"); // Submit the query. Webdriver searches for the form using the text input element automatically // No need to locate/find the submit button element.submit(); // This code will print the page title System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
ステップ 2) コードを実行します。 ブラウザが起動せず、結果がコンソールに表示されることがわかります。
HTML ユニット ドライバーの利点:
- テストに GUI を使用しないため、テストは視覚的に中断されることなくバックグラウンドで実行されます。
- 他のすべてのインスタンスと比較して実行が高速です
- HtmlUnit ドライバーを介してテストを実行するには、他のブラウザ バージョンを選択することもできます
-
プラットフォームに依存しないため、複数のテストを同時に実行するのが簡単です。 理想的な 負荷テスト.
制限事項:
- 他のブラウザをエミュレートすることはできません Javaスクリプトの動作
ファントムJS
PhantomJSはヘッドレスブラウザで、 Javaスクリプト API。ヘッドレス Web サイトのテスト、Web ページへのアクセスと操作に最適なソリューションであり、標準の DOM API が付属しています。
Seleniun で PhantomJS を使用するには、GhostDriver を使用する必要があります。 ゴーストドライバー PhantomJS 用のシンプルな JS での Webdriver Wire プロトコルの実装です。
PhatomJSの最新リリースでは 統合された ゴーストドライバーと 別途インストールする必要はありません。
システムの仕組みは次のとおりです。
実行する手順 Selenium PhatomJS を使用
ステップ1) あなたが必要です Eclipse Selenium インストール
ステップ2) PhantomJSをダウンロード こちら
ステップ3) ダウンロードしたフォルダーをProgram Filesに解凍します。
ステップ4) PhantomJS ドライバーを次からダウンロードします。 こちら。 jar をプロジェクトに追加する
ステップ5) 次のコードをEclipseに貼り付けます
package htmldriver; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.phantomjs.PhantomJSDriver; public class phantom { public static void main(String[] args) { File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe"); System.setProperty("phantomjs.binary.path", file.getAbsolutePath()); WebDriver driver = new PhantomJSDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Guru99"); element.submit(); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
ステップ6) コードを実行します。 出力がコンソールに表示され、ブラウザが起動していないことがわかります。
注意: 初回実行時、設定に基づいて、セキュリティ警告が表示される場合があります。 Windows PhantomJS の実行を許可します。 「アクセスを許可」をクリックします。
多くの組織では、Phantom.JS をさまざまな目的に使用しています。
- ヘッドレステスト
- スクリーンキャプチャ
- ページの自動化
- ネットワーク監視
- ユーザーのためにダッシュボードのスクリーンショットをレンダリングするには
- コマンドラインで単体テストを実行するには
- 従業員ハンドブックを HTML から PDF に生成するには
- テストスイート用の QUnit との組み合わせ
まとめ
視覚的に中断されることなく、さまざまなブラウザでアプリケーションを迅速にテストするには、ヘッドレス ブラウザを使用します。 テスト が使用されます。そのスピード、正確性、およびアクセスしやすい機能により、HTML ユニット ドライバーと PhantomJS はヘッドレス ブラウザー自動化テストで人気が高まっています。いくつかの簡単な手順に従うことで、これらのツールを他のツールと簡単に統合し、テスト コードを実行できることがわかります。