selenium grid tutorial
Seleniumグリッドの概要とSeleniumグリッドを使用してクロスブラウザーテストを実行する方法:
私たちは今、これの終わりに近づいています 包括的なSeleniumチュートリアルシリーズ 。来週は、このオンラインSeleniumトレーニングシリーズを「Seleniumプロジェクトの労力見積もり」と「Seleniumインタビューの質問と回答」のチュートリアルで締めくくります。
今日、このチュートリアルでは、 Seleniumグリッド– 分散テストの実行 テストパスの実行を高速化する環境。 SeleniumGridを使用してクロスブラウザーテストを実行する方法を学びます。
学習内容:
- Seleniumグリッドの必要性は何ですか?
- セレングリッドの利点
- SeleniumGRIDをインストールします
- ブラウザとノード
- maxInstances
- maxSession
- サンプルグリッドコード
- JSONファイルを使用した構成
- 結論
- 推奨読書
Seleniumグリッドの必要性は何ですか?
あなたが全体を通過するにつれて SeleniumWebDriverチュートリアル WebDriverが単一のマシンでテストケースを実行することがわかります。
このような設定に関するいくつかの問題があります。
- さまざまなオペレーティングシステムのテストケースを実行する場合はどうなりますか?
- 同じブラウザの異なるバージョンでテストケースを実行するにはどうすればよいですか?
- 複数のブラウザでテストケースを実行するにはどうすればよいですか?
- テストケースに依存していなくても、シナリオが他のテストケースの実行を待機する必要があるのはなぜですか?
これらの問題はすべて、SeleniumGRIDで対処されています。
Seleniumコースを進めると、これらの問題をどのように克服できるかについてのアイデアが得られます。基本的に、グリッドアーキテクチャはマスタースレーブアーキテクチャに基づいています。マスターマシンは、テストケースをさまざまなスレーブマシンに配布します。
利用可能なグリッドには2つのバージョンがあります。 Selenium Grid 2.0は、Seleniumの最新版です。 Selenium1.0は以前のバージョンでした。 Seleniumの専門家のほとんどは、新しい機能が満載されているSelenium Grid2.0の使用を好みます。 Selenium Grid 2.0は、SeleniumRCスクリプトとSeleniumWebDriverスクリプトの両方をサポートします。
推奨ツール:
#1)LambdaTest
スケーラブルで安全かつ信頼性の高いクラウドベースのSeleniumグリッドでSelenium自動化テストをオンラインで実行します。 Seleniumテストの自動化を加速すると同時に、2000以上のデスクトップおよびモバイルブラウザー環境のオンラインインフラストラクチャでテストすることにより、テストカバレッジを拡大します。
推奨読書= >> LambdaTestを使用してブラウザテストを自動化する
セレングリッドの利点
- Selenium Gridは、実行のためにテストケースを配布する柔軟性を提供します。
- バッチ処理時間を短縮します。
- マルチブラウザテストを実行できます。
- マルチOSテストを実行できます。
Seleniumグリッドの基本的な用語:
ハブ :ハブは、すべての要求を受信するGRIDアーキテクチャ全体の中心点です。セレングリッドにはハブが1つだけあります。 Hubは、テストケースを各ノードに分散します。
ノード :グリッドには複数のノードが存在する可能性があります。テストはノードで実行されます。各ノードはハブと通信し、ハブに割り当てられたテストを実行します。
SeleniumGRIDをインストールします
ステップ1 :以前はSelenium RCServerと呼ばれていたSeleniumの公式WebサイトからSeleniumServer jarファイルをダウンロードし、ローカルディスクの任意の場所に保存します。
セレン本社のURL:http://www.seleniumhq.org/download/
ステップ2 :コマンドプロンプトを開き、サーバーが配置されているフォルダーに移動します。以下のコマンドを使用してサーバーを実行します
java -jar selenium-server-standalone-2.41.0.jar-roleハブ
ハブはデフォルトでポート4444を使用します。このポートは、ポートが開いていてタスクが割り当てられていない場合に、コマンドプロンプトで別のポート番号を渡すことで変更できます。
ステータスは、Webインターフェイスを使用して確認できます。 http:// localhost:4444 / grid / console
ステップ3 :ノードをセットアップする予定の別のマシンに移動します。コマンドプロンプトを開き、以下の行を実行します。
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
他のマシンでSeleniumサーバーを実行して、ノードを起動します。
ブラウザとノード
各マシンでハブとノードを起動した後、GRIDコンソールに移動するとき
以下のようなブラウザセクションの下に、5つのChrome、5つのFirefox、1つのIEブラウザがあります。
これは、デフォルトで5つのChrome、5つのFirefox、および1つのIEブラウザを使用できることを示しています。
たとえば、IEのみを使用する場合は、以下のコマンドを使用してノードを起動できます。
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
をクリックして、GRIDコンソールでブラウザの種類とその他の詳細を確認します 構成を表示 。
Firefoxの場合も同様です。
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Chromeの場合:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
IE、Chrome、Firefoxなど、各タイプのブラウザが必要になるシナリオはいくつかあります。
たとえば、1つのIEと1つのFirefoxと1つのChromeブラウザを使用する必要がある場合があります
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
maxInstanceは、ノードでのブラウザーの初期化の数を制限するために使用されます。
たとえば、2つのFirefoxと2つのIEを使用する場合は、maxInstanceを使用してノードを起動できます。
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
最大インスタンスは、(構成)タブで確認できます。
同様に、他のブラウザインスタンスはmaxInstancesを使用して設定できます。
maxSession
maxSessionは、リモートシステムで並列に使用できるブラウザーの数を構成するために使用されます。
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
同様に、複数のノードを起動して、コンソールで構成を確認できます。
NODE1:
NODE2:
サンプルグリッドコード
ここでは、TestNGを使用してサンプルのGRIDテストケースを実行しました。
前提条件 :前に説明したようにハブとノードを作成し、TestNGをEclipseで構成する必要があります。
ここでは、Gmailにログインし、ユーザー名とパスワードを入力するためのサンプルテストを行いました
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
例のように、GRIDを使用していて、ブラウザーに機能を提供する必要がある場合は、RemoteWebDriverを使用する必要があります。上記のようにブラウザとプラットフォームを設定する必要があります。
mp3に最適なyoutubeは何ですか
この例では、プラットフォームをWINDOWSとして使用しました。要件に応じて、任意のプラットフォームを使用できます。
ブラウザのバージョンは、dr.setVersion( 'version')を使用して設定することもできます。
たとえば、このテストを複数のブラウザーでシリアルに実行する必要があります。testng.xmlを構成する必要があります。以下は、テストをシリアルに実行するための上記のテスト用のtestng.XMLスイートです。
テストを並行して実行するには、testng.xmlを次のように変更する必要があります。
ここtestng.XMLでは、パラメーターを次のように指定する必要があります。 パーレル = 「テスト」 そして スレッド数 = 「3」 並行して実行されるスレッドの最大数を記述します。
JSONファイルを使用した構成
グリッドは、JSON構成ファイルを使用して、その構成とともに起動することもできます。
以下の構成のJSONファイルを作成します。ここでは、grid_hub.jsonという名前のJSONファイルを作成しました
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
以下のコマンドを使用してハブを起動します
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
同様に、必要な構成に従って、ノードごとに異なるjsonファイルを作成します。
これは、grid_node.jsonという名前のノードのJSON構成ファイルの例です。
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
ノードを起動するには
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
JSONファイルで、ブラウザー、maxInstances、port、maxSessionなどのすべての構成を変更できます。
以下のように、JSON構成ファイルでプラットフォームであるブラウザーバージョンを提供できます。
{{
「browserName」:「chrome」、「version」:「8」、「platform」:「Windows」
}
結論
次のことをお勧めします マルチブラウザテストを実行する必要があり、テストケースが多数ある場合は、SeleniumGridを使用します。
このモジュールでは、グリッドハブとノードを設定する方法と、testng.XMLとJSONファイルを使用してグリッドテストケースを実行する方法について説明しました。
次のチュートリアル#30 : SeleniumおよびCucumberツールを使用した自動化テスト 。 きゅうり BDDテストです ツール およびフレームワーク。キュウリツールの機能と、以下を含むリアルタイムシナリオでの使用法を学習します。 SeleniumWebDriverをCucumberと統合する方法 。
以下のコメントにSeleniumGridに関する質問を投稿してください。
推奨読書
- Docker Seleniumチュートリアル:SeleniumグリッドをDockerと統合する方法
- Cucumber ToolとSeleniumを使用した自動化テスト– Seleniumチュートリアル#30
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Seleniumとの統合および機能テスト用のスポック
- 初心者向けの詳細なEclipseチュートリアル
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- Gebチュートリアル-Gebツールを使用したブラウザ自動化テスト
- Parrot QAチュートリアル:クロスブラウザ機能テストツールのレビュー