ホーム テクノロジー テスト管理 Selenium Webdriver について知らなかったすべて

Selenium Webdriver について知らなかったすべて


オートメーション テスターは、Selenium Webdriver を使用してコマンドを受け入れ、Web ブラウザーに送信することでシステム内の可能性をテストします。

現代の世界では、何百ものモバイル アプリケーションや Web アプリケーションが導入されています。 QA チームは、Web アプリが開発ゾーンの外でも機能することを常に確認する必要があります。以前は、これらのタスクは手動で実行されていました。

セレンを入力します。それはテストの実行方法を変えました。

現在、自動化は時間とコストを節約し、ビジネスに多くのメリットをもたらすため、あらゆる業界で広く知られるようになりました。

Selenium は、Web アプリケーション開発の世界のさまざまな組織にとって役立つ、最も優れた自動テスト ツールの 1 つです。これは確かに、多くの良い点を提供する便利で強力なツールです。

Web アプリケーションのフロントエンドのテストに多くの時間を費やすことなく、アプリケーションの機能に自信を持ちたい開発者は、目的に応じて Selenium を使用できます。さらに、Selenium は反復的なタスクを自動化することで時間を節約します。

この記事では、Selenium、Selenium Webdriver、そのコンポーネント、サポートされている言語、主要な機能のいくつか、および実際の使用例について説明します。

さぁ、始めよう!

セレンとは何ですか?

Selenium は、Web アプリケーションの自動化ツールです。これは、さまざまな組織や開発者が重要なタスクを自動化するために使用するオープンソースのポータブル フレームワークです。回帰テストと機能テスト ケースのテストに関しては、Selenium は非常に柔軟性があります。

セレン
セレン

Selenium は、さまざまなプラットフォーム、プログラミング言語、ブラウザーにわたる自動化をサポートします。そのテスト スクリプトは、Python、C#、Java などのさまざまなプログラミング言語で書かれています。これらのスクリプトは、Safari、Firefox、Chrome、Opera などのさまざまなブラウザで実行され、macOS、Linux、Windows、Solaris などのプラットフォームをサポートします。

Selenium はクロスブラウジング機能をサポートしており、ブラウザベースの堅牢な回帰自動スイートの作成に役立ちます。

これは 2004 年に Jason Huggins によって初めて開発されました。彼は定期的なテストが必要な Web アプリケーションのエンジニアとして働いていました。そこで彼は JavaScript を使用してプログラムを作成し、手動テストの欠点に気づきました。

最初に、彼はプログラムに「JavaScriptTestRunner」という名前を付けました。 Jason Huggins はプログラムの可能性に気づいた後、それをオープンソース プラットフォームにし、Selenium Core と名前を変更しました。

セレンはどのように役立つのでしょうか?

Selenium を使用すると開発者は自動テストを実行できるため、開発者や組織は Web アプリケーションのテストに Selenium を使用します。

セレン1
セレン1

実際、ソフトウェアには複雑なアーキテクチャが組み込まれており、リグレッションが発生しやすいものでもあります。新しい機能の追加から欠陥の修正まで、これに関連するすべての機能により、既存の機能が動作しなくなる可能性があります。これが、自動テストがプログラミングの世界で最も有用なステップである主な理由です。

機能に小さな変更を加えるたびにアプリケーションを手動でテストするのは現実的ではないため、Selenium は、そのような多忙なタスクを軽減するためのより良いソリューションを提供します。これにより、組織や開発者は、さまざまなブラウザーにわたる Web アプリケーションとの各対話のテストをシミュレートできます。

Selenium ツールスイート

Selenium ツールスイート
Selenium ツールスイート

Selenium は、大規模なツールまたはコンポーネントのスイートで構成されています。それぞれについて話し合いましょう。

#1.セレンIDE

Selenium IDE と呼ばれる記録と再生の自動化コンポーネントを使用して、Web アプリケーションのテストを自動化できます。これは、Firefox および Chrome ブラウザ拡張機能の形式で提供されます。プログラミングの経験が浅く限られた人でも、このツールは記録と再生の原則に基づいて動作するため、使用できます。

#2.セレン RC

セレン-RC
セレン-RC

Selenium RC は、自動化のために任意のブラウザに JavaScript コードを挿入するために使用されます。また、これらの自動化スクリプトを実行するには追加のサーバーも必要です。ただし、遅い、HtmlUnitDriver のようなヘッドレス ブラウザがない、テスト スクリプトを実行する前にサーバーを起動する必要があるなど、いくつかの制限があります。

#3. Selenium Webドライバー

Selenium Webdriver は、Selenium の最も重要なコンポーネントの 1 つです。複数のブラウザーにさまざまなドライバーを提供し、さまざまなプログラミング言語をサポートします。

さらに、オブジェクト指向であり、Firefox、Chrome、IE、Safari などのほぼすべてのブラウザをサポートしています。スクリプト作成は、Python、Ruby、Java などの一般的な言語を使用して実行できます。

#4.セレングリッド

Selenium グリッドも Selenium の重要な部分です。これは、自動テストの実行をさまざまなリモート マシン間で並行して分散するのに役立ちます。グリッドはハブとさまざまなノードで構成されます。

これらのノードは、テスト ケースを実行できる Selenium スイートのインスタンスを実行します。中央ハブはサーバーとして機能し、テスト実行全体を制御するためにノードがそれに接続されます。

Selenium WebDriver の詳細

Selenium-WebDriver-in-Detail-1
Selenium-WebDriver-in-Detail-1

一般に、WebDriver はアプリケーション プログラミング インターフェイス (API) のセットであり、多くの機能を備えたオブジェクト指向のツールです。ブラウザーと言語間の通信機能を提供します。

WebDriver は、複数の一般的なブラウザでさまざまなテストを実行するために使用されます。さらに、 findElement()By()get()などのさまざまなタイプの抽象メソッドが含まれています。

2009 年に、Selenium RC は WebDriver と統合され、Selenium WebDriver または Selenium 2.0 と呼ばれる新しい Selenium ツールが作成されました。

現在、 Selenium Webdriver はSelenium の人気ツールです。 Web アプリケーションのテストを自動化するために、オープンソースの無料ライブラリを開発者に提供します。

Selenium WebDriver では、サポートされているさまざまなプログラミング言語を使用してテスト スクリプトが開発されます。最新の Web ブラウザで実行できます。さらに、Perl、Python、Ruby、Java、PHP、C# などのさまざまな言語をサポートしています。

Selenium-WebDriver-in-Detail
Selenium-WebDriver-in-Detail

ただし、現在、Selenium WebDriver は C# と Java で最も人気があります。ブラウザを直接呼び出すため、Selenium RC よりもはるかに高速に実行されます。さらに、WebDriver は、Firefox Driver または Gecko Driver の組み込み実装で​​構成されます。

他のブラウザでテストを実行するには、通信して自動テストを実行するためにブラウザ固有のドライバをプラグインする必要があります。最もよく使用される WebDriver は次のとおりです。

  • Google Chromeドライバー
  • オペラドライバー
  • Internet Explorerドライバー
  • HTML ユニット ドライバー – ヘッドレス ドライバー
  • サファリドライバー

Selenium WebDriver は、Web 自動化の安定性と多様性によりよく知られています。 Selenium WebDriver は UI 自動化の最も簡単な方法であるため、80% 以上の企業が Selenium WebDriver を使用しています。

Selenium WebDriver のコンポーネント

Selenium WebDriver のコンポーネント
Selenium WebDriver のコンポーネント

Selenium WebDriver は 4 つの基本コンポーネントで構成されます。

  • Selenium 言語バインディング
  • JSONワイヤープロトコル
  • ブラウザドライバー
  • リアルブラウザ

Selenium WebDriver のコア コンポーネントについて詳しく説明します。

#1. Selenium 言語バインディング/コア ライブラリ/Selenium クライアント

自動化スクリプトは、Webdriver を通じて Selenium サーバーと対話します。 Ruby、Python、Java などのさまざまなプログラミング言語で書かれています。

Selenium 開発者は、Selenium でこれらのプログラミング言語をサポートできるようにする言語バインディングを開発します。そのクライアント ライブラリは単に異なる Jar ファイルです。これらのライブラリには、自動化用のテスト スクリプトを作成するために必要な Selenium WebDriver のメソッドとクラスが含まれています。

各言語で利用可能なパッケージ インストーラーを使用して、Selenium コア ライブラリをインストールできます。たとえば、Java でブラウザ ドライバを使用する場合は、Java クライアント ライブラリまたは Jar ファイルが必要になります。

Selenium クライアント ライブラリはテスト フレームワークではなく、プログラムから Selenium コマンドを実行する一連の関数を意味する API を提供します。

#2. HTTP 経由の JSON ワイヤー プロトコル

JavaScript Object Notation (JSON) は、JavaScript のサブセットに基づく一般的なデータ交換形式です。 JSON は、Web 上のサーバーとクライアントの間でデータを交換するために使用されます。

JSON ワイヤー プロトコルは、Python、Ruby、Java など、すべての一般的な言語で利用可能なすべてのデータ形式をサポートします。これは、JSON を使用して Web 上のクライアントとサーバー間でデータを転送するトランスポート メカニズムです。

さらに、JSON は REST API を使用して HTTP サーバー間でデータを転送し、すべてのブラウザー ドライバーには独自の HTTP サーバーがあります。

#3.ブラウザドライバ

ブラウザドライバー
ブラウザドライバー

Selenium はブラウザごとに特定のドライバを使用して、ブラウザの機能の内部ロジックを明らかにすることなく安全な通信を確立します。これらのドライバーは、Selenium 言語バインディングからリクエストを受け取り、ブラウザー上で必要な操作を呼び出します。

Selenium は、自動化のためにほとんどすべての最新ブラウザをサポートしています。ブラウザ ドライバーは、WebDriver インターフェイスを実装する RemoteWebDriver という名前の別のクラスを拡張します。

#4.リアルなヘッドレスブラウザ

ブラウザは基本的に、人々が Web 上のコンテンツを表示または検索するために使用するソフトウェア プログラムです。 Selenium WebDriver は、リアル ブラウザとヘッドレス ブラウザをサポートします。

例: Selenium WebDriver を使用してテストを自動化し、Chrome などの実際のブラウザでスクリプトを実行するとします。これを行うには、特定のドライバー アプリケーションをダウンロードする必要があります。 HTMLUnit ブラウザ (HTMLUnitDriver) は、ヘッドレス ブラウザの一例です。

Selenium WebDriver はどのように機能しますか?

リアルタイム シナリオでは、サポートされている Selenium クライアント ライブラリのいずれかを使用してスクリプト コードが記述されている場合、適切なオプションをクリックすることで、プログラムのソース コードを実行できます。実行オプションをクリックすると、ブラウザが起動して Web サイトの URL に移動します。

セレンワーキング
セレンワーキング

WebDriver を使用してテスト スクリプトを実行すると、いくつかの手順が内部で実行されます。

  • ボタンをクリックして実行すると、クライアント ライブラリはプログラムからコマンドを実行し、それを JSON 形式に変換します。各コマンドのブラウザ ドライバーに送信するために、HTTP 経由で JSON Wire Protocol を介してシリアル化された JSON 形式が見つかります。その後、すべてのブラウザ ドライバーは HTTP サーバーを使用して HTTP 要求を受信します。
  • JSON ワイヤー プロトコルは、データを転送することによってサーバーとクライアントの間で通信します。 HTTP サーバーは、実際のブラウザ上で必要なアクションをすべて実行します。ブラウザは URL をロードするリクエストを送信します。
  • すべてのアクションを実行した後、実行ステータスを HTTP 経由で HTTP サーバーに送信する必要があります。ブラウザー ドライバーは、HTTP サーバーを再度使用してリクエストを受信し、JSON ワイヤー プロトコルを通じてライブラリに送り返します。その後、クライアント ライブラリがプログラムに渡されます。その後、プログラムは失敗または成功を報告します。

Selenium WebDriverの特徴

Selenium-WebDriverの特徴
Selenium-WebDriverの特徴

Selenium WebDriver の強力な機能は次のとおりです。

  • 複数のブラウザのサポート: Selenium WebDriver は、Chrome、Firefox、Safari、Opera、Internet Explorer などの幅広い Web ブラウザとそのバージョンをサポートします。また、HTMLUnit ブラウザのようなヘッドレス ブラウザもサポートします。
  • 複数の言語のサポート: Selenium WebDriver は、Ruby、PHP、JavaScript、Pearl、Python、C# など、最も一般的に使用されるプログラミング言語をサポートします。能力に基づいて言語を選択する機能が提供されます。テスト スクリプトの作成を簡単に開始できます。
  • 速度: Selenium WebDriver は高速な操作を実行します。ブラウザとの通信に中間サーバーは必要ありません。さらに、Web ブラウザと WebDriver クライアント ライブラリ間の直接通信を提供します。
  • シンプルで簡単なコマンド: WebDriver は、テスト スクリプトに実装するための簡単でシンプルなコマンドを提供します。たとえば、WebDriver を使用してブラウザを起動する場合は、new FirefoxDriver()、new ChromeFriver() などのコマンドを使用する必要があります。
  • ドライバー、メソッド、クラス: WebDriver は、自動テストにおける潜在的な変更に対処するためのさまざまなソリューションを提供します。さらに、テスターが動的ファインダーを使用して、ドロップダウン、アラート、チェックボックスなどの複雑な Web 要素を処理できるようになります。
  • シンプルな API コマンド: WebDriver はオブジェクト指向でコンパクトなので、カプセル化と抽象化を使用して異常な詳細を隠すことができます。これにより、Selenium WebDriver がシンプルになります。
  • インストールと構成が簡単: Selenium WebDriver には、JavaScript または AJAX を使用して構築された非同期 Web アプリをテストするオプションが用意されています。

Selenium WebDriver の利点

セレンの利点
セレンの利点

Selenium WebDriver の利点には次のようなものがあります。

  • Selenium WebDriver は、堅牢なフリーウェア、オープンソース、ポータブル ツールです。
  • Windows、Linux、Mac などのさまざまなオペレーティング システムをサポートしています。 Apache POI、Autoit などのサードパーティ ツールもサポートしています。
  • Selenium WebDriver の人気の理由の 1 つである並列テスト実行プロセスをサポートしています。これにより、テスト ケースの実行時間が短縮されます。
  • リスナーとダイナミックファインダーの実装をサポートします。
  • Selenium WebDriver では、スクリプトを実行するたびにサーバーを起動する必要はありません。
  • JUnit や TestNG などのサードパーティ ツールと統合して、さまざまなテスト ケースをグループ化し、テスト レポートを生成できます。
  • Jenkins、Docker、Maven と統合することで、継続的なテストを実現します。

Selenium WebDriver の制限事項

Selenium WebDriver には利点のほかに、いくつかの制限もあります。

  • Selenium WebDriver は Web ベースのアプリケーションのみをテストできます。デスクトップ アプリケーションとウィンドウ ベースのアプリケーションは、Selenium を使用してテストできません。
  • イメージに対してテストを実行する可能性はありません。
  • WebDriver はテスト結果ファイルを自動的に生成しません。 JUnit や TestNG などのフレームワークと統合するか、レポートを生成する必要があります。
  • 新しいブラウザはサポートされていません。
  • アドインのサポートはありません。
  • バーコード リーダー、reCAPTCHA、および CAPTCHA は、WebDriver を使用して自動化することはできません。

Selenium WebDriver の使用例

セレンの使用例
セレンの使用例

Selenium WebDriver は、Web アプリケーションを扱うさまざまな業界で多くの用途に使用されています。用途の一部は次のとおりです。

  • Web ブラウザの最新バージョンと Selenium ライブラリに一致するように WebDrivers のバージョンを更新する
  • 多くの企業は自動化フレームワークを実装することで同期の問題を解決しています
  • テストデータをJSONに保存する
  • ページ オブジェクト モデル デザイン パターンを使用した、テスト対象の Web アプリケーションのユーザー インターフェイスのモデリング
  • オブジェクト指向プログラミング (OOP) 言語を使用したテスト自動化開発
  • 自動スクリーンショットを取得して障害を調査する
  • テスト自動化から不確実性を取り除く
  • 高品質のテスト結果の作成

結論

Selenium WebDriver は、Selenium スイートの重要なコンポーネントです。セレンの脳のようなものです。 Selenium WebDriver の API は、テスト プロセスの高速な機能に役立ちます。 Selenium WebDriver の主な機能は、クロスブラウザー テスト、Web ページの自動化、最新のテクノロジーのサポートなどです。

Selenium WebDriver のブラウザ ドライバは、さまざまな Web ブラウザを使用してスイートと対話するのに役立ちます。したがって、Selenium WebDriver は、Selenium 自動テスト フレームワーク全体にとって重要です。

「 Selenium Webdriver について知らなかったすべて」についてわかりやすく解説!絶対に観るべきベスト2動画

Selenium WebDriver チュートリアル #15 – WebDriver インターフェイスの基本メソッド – パート 2
Selenium WebDriver と Java チュートリアル 11 – Selenium WebDriver を使用してリンクを自動化する方法