docker selenium tutorial
Docker Seleniumチュートリアルの概要:
私たちの1つで議論されているように 前のチュートリアル Seleniumグリッドは、さまざまなオペレーティングシステムおよびさまざまなブラウザーでテストケースを実行するのに役立ちます。
しかし、これは DockerSeleniumチュートリアル Dockerとは何か、Dockerをダウンロード、インストール、およびSeleniumグリッドと統合する方法について、関連するスクリーンショットとともに説明します。この図解により、プロセスをすばやく簡単に理解することもできます。
学習内容:
- Seleniumグリッドとは何ですか?
- Seleniumグリッドの使用の1つの実用的な例
- Dockerとは何ですか?
- DockerSeleniumチュートリアルの前提条件
- Docker forWindowsのダウンロード
- Dockerイメージをインストールします
- Seleniumハブを起動します
- Seleniumノードを開始します
- Seleniumテストの構成
- 結論
- 推奨読書
Seleniumグリッドとは何ですか?
Seleniumグリッドは、コンピューター(ハブ)をマスターして、スレーブマシン(ノード)間でテストケースを分散させるのに役立ちます。
ある時点ですべてのテストケースを1台のマシンに実装すると、いくつかの制限が生じる可能性があり、1台のマシンではすべてのテストケースを実行するのに十分でない場合があり、その時点でSeleniumグリッドがその役割を果たします。
Seleniumグリッドの使用の1つの実用的な例
2〜3年前、中国は国内でGoogle製品を禁止しました。当時、中国向けのWebシステムを開発した他の企業は、Internet Explorer、Firefox、OperaなどのGoogle製品(Google Chrome)を除いて、さまざまなブラウザでWebシステムをテストする必要がありました。
そのため、当時、Seleniumグリッドは、Google Chrome以外のさまざまなブラウザーでテストケースを実行するためにSeleniumグリッドを使用していたため、これらの企業にとって非常に便利でした。
Dockerとは何ですか?
簡単に言うと、Dockerはコンテナーと呼ぶことができます。開発者またはDockerユーザーは、データベース、ライブラリ、依存関係などをそのコンテナに入れ、それらのデータベース、依存関係、およびライブラリを使用して、アプリケーションを作成、デプロイ、および実行できます。
Dockerコンテナーを使用することで、データベース、ライブラリ、その他の依存関係など、そのアプリケーションの構築に必要なすべてのコンテンツを含むソフトウェアアプリケーションをセットアップしてパックでき、最後に、それらすべてを1つのパッケージとして出荷できます。
通常、Seleniumグリッドを構成するときは、複数の仮想マシンをノードとしてホストする必要があり、すべてのノードをハブに接続する必要があります。また、通常のグリッドをセットアップするときは、Seleniumサーバーのjarファイルをダウンロードし、Seleniumグリッドをセットアップする各コンピューターでそのjarファイルを実行する必要があります。
これは、テスターにとってコストがかかり、時には時間のかかる作業です。ただし、Dockerは、コストと時間のかかる問題の解決に役立ちます。
DockerはSolomonHykeyによって発明され、2013年3月にオープンソースツールとしてソフトウェア業界に投入されました。今日、開発者とシステムエンジニアはいくつかの理由でDockerを使用しています。
このチュートリアルでは、ソフトウェアのテストとソフトウェアの自動化にDockerを使用します。
DockerSeleniumチュートリアルの前提条件
まず、Seleniumスクリプトを実行するための環境をセットアップする必要があります。
以下に、確認する必要のあるいくつかの事項を示します。
- お使いのマシンがJDK1.7以降のバージョンで構成されている場合
- ChromeおよびFirefoxブラウザはローカルマシンにインストールされていますか?
- SeleniumWebDriverおよびTestNGベースのテストケース。
- テストケースを並列テストとして実行するようにTestng.xmlファイルを構成しました。
Docker forWindowsのダウンロード
次に行う必要があるのは、Dockerツールボックスをインストールすることです。 Dockerコマンドを実行するには、Dockerツールボックスに付属するDockerクイックスタートターミナルが必要です。したがって、Dockerツールボックスをインストールする必要があります。
DockerツールボックスはどのWebサイトからでもダウンロードできますが、Dockerツールボックスは公式Webサイトからダウンロードすることを強くお勧めします。 Docker 。
Dockerツールボックスのインストール中に、いくつかのチェックボックスが表示されます。インストールを完了するには、これらすべてのチェックボックスをオンにして、Dockerツールボックスをインストールする必要があります。正常にインストールすると、次の3つのDockerツールボックスアイコンが表示されます。
Dockerツールボックスをインストールした後、Dockerクイックスタートターミナルをダブルクリックして開きます。 DockerはデフォルトのマシンをIPアドレス192.168.99.100で構成し、ローカルマシンを初めて構成するのに少し時間がかかります。したがって、次のウィンドウが表示されるまで待つ必要があります。
Dockerが正常に構成されました!
Dockerイメージをインストールします
Seleniumグリッド(Dockerなし)を構成する一方で、Seleniumハブとノード(ブラウザー)も構成する必要があります。
通常のグリッドと同様に、Dockerを使用してSeleniumグリッドを構成する場合、ハブとブラウザーのノードをDockerコンテナーにインストールする必要があります。後で、そのDockerコンテナーからハブとノードを起動できます。
したがって、最初に行うことは、ハブとノードのイメージをDockerにインストールすることです。
最初に、Dockerを使用してテストを実行するには、5つのイメージをインストールする必要があります。
- Seleniumハブイメージ
- Seleniumノード-Firefoxイメージ
- セレンノード-クロム画像
- Seleniumノード-Firefox-デバッグイメージ
- Seleniumノード-chrome-デバッグイメージ
次の質問は、それらの画像を見つける方法です。それらの画像を見つけるために、 DockerHub これらの画像を名前で検索します。また、以下に示すように、検索バーに画像名を入力することもできます。
名前を入力してEnterキーを押すと、以下のウィンドウが表示されます。
このウィンドウには、Seleniumハブ用に用意されているすべての画像リポジトリが表示されます。ここでは、プル数が最も多い画像をクリックする必要があります。これにより、エラーなしでコードを実行できます。その画像をクリックすると、以下のような別のウィンドウが表示されます。
((注意:画像をクリックすると拡大表示されます)
このウィンドウには、イメージ(Seleniumハブイメージ)に関するすべての情報が表示され、そのイメージ(Seleniumハブイメージ)に関連するすべてのコマンドが表示されます。ここで、Docker pullコマンドは、そのDockerイメージをコンテナーにインストールするコマンドです。
したがって、最初に、Seleniumハブイメージをインストールする必要があります。これを行うには、Docker pullコマンドをコピーして、以下に示すようにDockerクイックスタートターミナルに貼り付ける必要があります。
Dockerクイックスタートターミナルに各コマンドを入力した後、イメージがDockerコンテナーにダウンロードされるまでしばらく待つ必要があります。待機時間は、ネットワーク接続の速度に完全に依存します。インストールまたはダウンロード中に一部のイメージが失敗することがあります。その場合は、インストールが完了したと端末に表示されるまで、そのイメージを再度インストールするのが最善の方法です。
もう1つの重要な要素は、最初のコマンドのダウンロードを完了する前に2番目のコマンドを入力しないことです。ダウンロードとインストールの両方に失敗します。
同様に、Dockerコンテナで上記の5つのイメージすべてを検索してインストールできます。
次の表は、クイックスタートターミナルに入力してインストールする必要があるすべてのプルコマンドを示しています。
c ++のEclipseide
画像 | コマンド |
---|---|
Seleniumハブ | Dockerプルセレン/ハブ |
SeleniumFirefoxノード | docker pull selenium / node-firefox |
セレンクロームノード | Dockerプルセレン/ノードクロム |
SeleniumFirefoxデバッグ | docker pull selenium / node-firefox-debug |
Seleniumchromeのデバッグ | docker pull selenium / node-chrome-debug |
すべての画像をコンテナにダウンロードした後、以下のコマンドを使用して確認できます。
Dockerイメージ
これで、すべての画像が正常にダウンロードされました。したがって、これらのイメージを1つずつ実行できます。
Seleniumハブを起動します
通常のSeleniumグリッド(Dockerなし)では、最初のステップはSeleniumハブを起動することです。 DockerコンテナからSeleniumハブを起動するために、次のような特別なコマンドがあります。
docker run -d -p 4444:4444 –name selenium-hub selenium / hub
ターミナルにそのコマンドを入力して入力すると、DockerコンテナからSeleniumハブが開きます。ブラウザで次のリンクを確認することで、Seleniumハブが起動したかどうかを確認できます:http://192.168.99.100:4444 / grid / console
この画像では、192.168.99.100がIPアドレスです。
Seleniumノードを開始します
Seleniumハブが起動し、次にDockerコンテナーからノードを起動する必要があり、chromeノードとFirefoxノードを起動する必要があります。インストールプロセスで、両方のノードイメージをDockerコンテナにインストールしました。
それでは、両方のノードから1つずつ始めましょう。また、必要な数のノードを実行できることを忘れないでください。ここでは、2つのノード(chromeノードとFirefoxノード)のみを使用しました。
Dockerからchromeノードを実行するコマンド: docker run -d –link selenium-hub:hub selenium / node-chrome
DockerからFirefoxノードを実行するコマンド: docker run -d –link selenium-hub:hub selenium / node-firefox
ChromeノードとFirefoxノードを実行した後、ChromeデバッグノードとFirefoxデバッグノードも実行する必要があります。デモ目的でchromeデバッグノードとFirefoxデバッグノードを実行してインストールします。このチュートリアルの最後に、VNC(Virtual Network Computing)ビューアを使用して両方のデバッグノードでテストケースを実行します。
VNCビューアの場合、Firefoxとchromeの両方のデバッグノードが必要です。 VNC(Virtual Network Computing)ビューアを使用すると、1台のコンピュータでさまざまなブラウザアクションを同時に表示できます。
Dockerからchromeデバッグノードを実行するコマンド: docker run -d –P –link selenium-hub:hub selenium / node-chrome-debug
DockerからFirefoxデバッグノードを実行するコマンド: docker run -d –P –link selenium-hub:hub selenium / node-firefox-debug
Dockerクイックスタートターミナルでは、両方のコマンドが無視される場合があります。 Dockerクイックスタートターミナルがこれらの2つのコマンドを無視する場合は、代わりに以下のコマンドを使用してChromeおよびFirefoxブラウザーのデバッグモードを開始できます。
代替案01
docker run –d –P –link selenium-hub:hub selenium / node-chrome-debug
docker run –d –P –link selenium-hub:hub selenium / node-firefox-debug
代替案02
docker run –d –link selenium-hub:hub selenium / node-chrome-debug
docker run –d –link selenium-hub:hub selenium / node-firefox-debug
ChromeとFirefoxノードおよびChromeとFirefoxのノードとデバッグノードの両方を実行した後、ブラウザを更新すると、FirefoxとChromeノードがコンテナから始まります。
イメージのインストールまたは実行プロセス中にエラーが発生した場合は、Dockerからその特定のイメージを再インストールして再実行するのが最善の方法です。
これで、Dockerコンテナ側のすべての手順が完了しました。次に、デモを行うためにSeleniumスクリプトとVNCビューアに注意を払う必要があります。
まず、実行中のchromeおよびfirefoxデバッグノードのポート番号を特定する必要があります。 VNCビューアにはこれらのポート番号が必要だからです。
ChromeとFirefoxノードのポート番号を特定するには、クイックスタートターミナルで以下のコマンドを入力すると、すべてのDockerイメージと各イメージの実行中のポートが(PORTS)列に表示されます。
docker ps-a
ノード | 実行中のポート番号 |
---|---|
Chromeデバッグノード | 32771 |
Firefoxデバッグノード | 32772 |
これで、実行中のchromeおよびfirefoxデバッグノードのポート番号がわかったので、VNCビューアを使用して両方のブラウザを起動できます。
そのためには、以下の手順に従う必要があります。
1) 公式サイトからVNCビューアをダウンロードします。 VNCをダウンロード
2) それを実行します
3) 以下に示すように、各デバッグモードのハブURLとポート番号を入力し、接続ボタンをクリックします
HUBURL : ポート番号
- Chromeブラウザの場合192.168.99.100 : 32771
4) 接続ボタンをクリックした後、VNCビューアはパスワードを要求します。デフォルトでは、VNCビューアのパスワードは 秘密 、パスワードを次のように入力します 秘密 (OK)をクリックすると、Chromeブラウザのウィンドウが表示されます。
5) 同様に、VNCビューアを使用してFirefoxブラウザでも同じことを行う必要があります。ローカルコンピューターでVNCアプリケーションを開き、ハブURLでFirefoxの実行ポート番号を使用して、接続ボタンをクリックします。
- Firefoxブラウザの場合192.168.99.100 : 32772
ここでも、Firefoxブラウザ用に別のウィンドウが開きます。
これで、両方のブラウザーがVNCビューアーに表示されます。次のタスクは、セレンスクリプトを記述して実行することです。
Seleniumテストの構成
いつものように、セレングリッドに関連するテストスクリプトを作成できます。セレングリッドスクリプトを作成する手順については、 セレングリッドチュートリアル 。
これが私が作成したスクリプトです。これは通常のセレンスクリプトであり、2つのテストを作成し、それらのテストの目的の機能を、作成した2つの異なるブラウザーに設定しました。
また、XMLファイルを変更して、テストを並行して実行しました。
すべての手順が完了しました。今すぐテストを実行できます。テストを実行すると、Dockerを使用して作成した2つの異なるブラウザーでテストが実行されていることを確認できます。 VNCビューアは、ブラウザが各Webサイトに同時に移動する方法を示します。
結論
テストケースが多数ある場合は、Seleniumグリッドを使用してテストケースの実行を高速化できます。異なるオペレーティングシステムでテストケースを実行およびテストする必要がある場合もあれば、異なるブラウザでテストケースをチェックする必要がある場合もあります。このような場合は、Seleniumグリッドを使用します。
Seleniumグリッドの構成は、複数のマシンが必要になるため、コストがかかり、時間のかかるプロセスになる場合があります。このような場合、最善のオプションは、DockerでSeleniumグリッドを使用することです。
推奨読書
- Seleniumグリッドチュートリアル:クロスブラウザテストのセットアップと例
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- 初心者向けの詳細なEclipseチュートリアル
- 効率的なSeleniumスクリプティングとトラブルシューティングシナリオ– Seleniumチュートリアル#27
- ログを使用したSeleniumスクリプトのデバッグ(Log4jチュートリアル)– Seleniumチュートリアル#26
- 30以上の最高のSeleniumチュートリアル:実際の例でSeleniumを学ぶ
- JUnitフレームワークの概要とSeleniumスクリプトでのその使用法– Seleniumチュートリアル#11