失敗したテストケースを実行する方法 TestNG: Selenium webdriver
このチュートリアルでは、次のことを学びます。
- 作る Selenium プロジェクト
- 変換して実行 Selenium プロジェクトへ TestNG
- 実行する TestNG コマンドライン経由
- 失敗したテストケースのみを実行する方法
- コマンドラインから testng-failed.xml ファイルを実行する
作る Selenium プロジェクト
プロジェクトの準備
ステップ1) In Eclipse、 作成する Java 新しいプロジェクトをクリックして Java プロジェクト
ステップ2) このステップでは、
- プロジェクト名を付ける
- 実行環境を選択する
- プロジェクトレイアウトオプションを選択します
- 「完了」ボタンをクリックします。
完了ボタンをクリックしたとき。 「TestProject」Javaプロジェクトが作成されます。 「TestProject」はこんな感じになります。
ステップ3) 新しく作成したプロジェクトを開きます。 パッケージエクスプローラーに「src」フォルダーが表示されます。
- プロジェクトを右クリックし、「新規」を選択します
- オプションパッケージを選択してください
ステップ4) このステップでは、
- src フォルダーを参照してパッケージを選択します
- パッケージ名を指定して、
- 最後に、完了ボタンをクリックしてください。 (パッケージ名 ->com.test)
「完了」をクリックすると、プロジェクト構造は次のようになります。
ステップ5) このステップでは、
- 次に、新しく作成したパッケージを右クリックし、
- オプション「クラス」を選択します。
新しいウィンドウが開きます。
ステップ6) このステップでは、
- 「クラス」名を付ける
- 修飾子の選択
- スーパークラス java.lang.object を参照して選択します
- 終了ボタンをクリックします。
ここでは、次のような XNUMX つのクラスを作成しています。 デモA、デモB.
まずクラス DemoA を作成します。
「完了」ボタンをクリックしたとき。 次に、次のようなクラスを作成します。
同様に、クラス DemoB を作成します。「完了」ボタンをクリックすると、クラスは以下のようになります。
ステップ7) あなたがインストールしている場合 TestNG ライブラリをクリックするだけ Java プロジェクト -> プロパティ。
ステップ8) プロパティウィンドウで、
- ソフトウェアの制限をクリック Java ビルドパス
- 「ライブラリ」をクリックします
- 「ライブラリの追加」をクリックします。
次へ
- 「TestNg」をクリックし、
- 「次へ」をクリックします。
そして「完了」ボタンをクリックしてください。
その後、次のコードを記述します。
クラスデモAの場合
コードの説明:
- Driver.manage().window().maximize();
この行により、ブラウザ ウィンドウが最大化されます。
- driver.get(https://www.google.co.in);
この行は、指定された URL を URL フィールドに入力します。
- driver.findElement(By.name(“q”)).sendKeys(“Hi”);
この行は「Google」検索ボックスを識別し、sendKeys メソッドを使用して送信したデータを入力します。
出力: 上記のプログラムにはエラーが含まれているため、実行できません。
クラス DemoB についても同様に、
赤い下線が引かれた単語がエラーです。これらのクラスとインターフェースを含むjarファイルをまだ追加していないためです。上記のコードにあるエラーを削除するには、対応するjarファイルを追加します。 Java プロジェクトを選択し、「プロパティ」を選択します。
ステップ8) プロパティウィンドウで、
- ソフトウェアの制限をクリック Java 左側のナビゲーション ペインのビルド パス。
- 「ライブラリ」タブをクリックし、
- [外部 JAR の追加] をクリックし、 Selenium-スタンドアロンのjarファイル
- 「OK」ボタンをクリックします。
この手順を実行すると、すべてのエラーが自動的に削除されます。削除されない場合は、エラーが表示されているコードの上にマウスを置き、必要なクラスとインターフェースをすべてインポートします。
@testでまだエラーが表示される場合は、マウスをそこに置きます。可能なオプションが表示されます。次に、追加をクリックします。 TestNG ライブラリオプション。他の「クラス」に対しても同様に行います。
DemoA と DemoB の両方のクラス内にコードを記述した後、次のステップに進みます。
ステップ9) このステップでは、
- プロジェクトを右クリックし、
- オプションフォルダを選択して「lib」というフォルダを作成し、testNG jarファイルとselenium jarファイル(selenium-server-standalone)を貼り付けます。 )。(テストと Selenium-server-standalone jar ファイルを Web からダウンロードし、システム内に保存する必要があります。手動でそのフォルダーに移動して、これら 2 つの jar をコピーし、Eclipse にある「lib」フォルダーを右クリックして貼り付けをクリックする必要があります。
ステップ10) このステップでは、
1. 親フォルダーを選択します
2. フォルダ名を「lib」にします。(lib フォルダにこれら XNUMX つの jar ファイルを追加する主な目的は、コマンド プロンプトから実行するときに、プログラムの実行に必要な jar ファイルがこの場所にあることをコンパイラに伝えることです。Eclipse から testng.xml を実行する場合、この lib フォルダはまったく必要ありません)
3.「完了」ボタンをクリックします
テストと Selenium-server-standalone jar ファイルを Web からダウンロードし、システム内に保存する必要があります。手動でそのフォルダーに移動して、これら 2 つの jar をコピーし、Eclipse にある 'lib' フォルダーを右クリックして貼り付けをクリックする必要があります。
フォルダーを作成したら、次のステップでは、DemoA と DemoB のプログラムを Testng.xml ファイルに変換します。
変換して実行 Selenium プロジェクトへ TestNG
ステップ1) このステップでは、
- パッケージの下にある XNUMX つの Java ファイルを選択し、右クリックします。
- 「testNG」というオプションを選択します。
- 「testNG」への変換をクリックします。
ステップ2) 新しいウィンドウが開きます。このウィンドウで、次のような詳細を入力します。
- 企業名簿
- スイート名
- テスト名
- クラス選択
- パラレルモード
- 「完了」ボタンをクリックします
すると、Java プロジェクトの下に testng.xml ファイルが作成され、次のようになります。
(testng.xmlファイルを実行する場合は、パッケージエクスプローラーの左側のナビゲーションペインにあるtestng.xmlファイルを右クリックし、実行をクリックします。 TestNG スイート。 )
ステップ3) testng.xml スイート ファイルは次のようになります。
最初に DemoA クラスを実行したい場合は、その完全な行を削除し、次のように DemoB クラスの前に追加します。
ステップ4) testng.xml ファイルを実行すると、次の方法で結果が表示されます。(System.out.println() を使用して実行可能なステートメントを記述していないため、コンソール ウィンドウには何も印刷されません)。
これは、Eclipse を通じてテストを実行する方法の 1 つです。コマンド プロンプトから、DemoA、DemoB などの 2 つのクラス ファイルを含む同じ testng.xml スイート ファイルを実行する場合は、以下の手順に従う必要があります。
次に、コマンド プロンプトを開き、プロジェクト ワークスペースに移動します。
実行する TestNG コマンドライン経由
プロジェクト スペースの場所を見つける必要があります
ステップ1) まず右クリックして Java プロジェクトを選択し、プロパティ オプションを選択します。プロパティ ウィンドウで、リソース オプションを選択します。
ステップ2) 「リソース」リンクをクリックすると、左側のナビゲーション ペインに表示されます。 プロジェクトが正確にどこに保存されているかが表示されます
プロジェクトのワークスペースは、 C:\ユーザー\ユーザー\デスクトップ\Guru99\TestProject。 したがって、ディレクトリをその特定の場所に変更します。
ステップ3) 次に、次のコマンドを入力します。(このコマンドは汎用コマンドです)
java –cp “ワークスペースにある lib フォルダーのパス\*; プロジェクト ワークスペースにある bin フォルダーのパス; プロジェクト ワークスペースの lib フォルダーにある testng.jar ファイルのパス” org.testng。TestNG テスト
しかし、私たちのプロジェクトでは、次のコマンドを記述する必要があります。
Java –cp "C:\Users\User\Desktop\Guru99\TestProject\lib\*; C:\Users\User\Desktop\Guru99\TestProject\bin" org.testng.TestNG testng.xml
ステップ4) 次に Enter キーを押します。 DemoA と DemoB の両方のクラスが実行を開始します。 最後に、結果がコマンド プロンプトに表示されます。
失敗したテストケースのみを実行する方法
失敗したテスト ケースのみを実行したい場合は、 Eclipse、次に最初にプロジェクトを更新します。
ステップ 1) Java プロジェクト (デモ A および B) を右クリックします。
更新オプションを選択するか、単に Java プロジェクトを選択して F5 キーを押します。
ステップ 2) すると、テスト出力フォルダーが表示されます。
そのフォルダーには、testng-failed.xml という名前のファイルがあります。
ステップ 3) このファイルを右クリックして「実行」をクリックし、「testNG suite」というオプションを選択します。
XNUMX つのテスト ケースがある場合、すべてのテスト ケースが正常に実行された場合、test-output フォルダーの下にこのフォルダーが表示されないことを意味するとします。 このフォルダーは、テスト ケースの XNUMX つが失敗した場合にのみ表示されます。 次に、このファイルを実行すると、失敗したテスト ケースのみが実行されます。
コマンドラインから testng-failed.xml ファイルを実行する
ステップ1) 失敗したテスト ケースをコマンド プロンプトで実行するには。 コマンド プロンプトを開き、プロジェクト ワークスペースに移動します。
私のプロジェクトのワークスペースは C:\ユーザー\ユーザー\デスクトップ\Guru99\TestProject。 したがって、ディレクトリをその特定の場所に変更することになります。
ステップ2) 次のコマンドを入力します。(このコマンドは汎用コマンドです)
java –cp “ワークスペースにある lib フォルダーのパス\*; プロジェクト ワークスペースにある bin フォルダーのパス; プロジェクト ワークスペースの lib フォルダーにある testing.jar ファイルのパス” org.testng。TestNG テスト出力/testng-failed.xml
このプロジェクトでは、次のコマンドを記述する必要があります。
Java –cp "C:\Users\User\Desktop\Guru99\TestProject\lib\*; C:\Users\User\Desktop\Guru99\TestProject\bin" org.testng.TestNG test-output/testng-failed.xml
ステップ3) 次に Enter キーを押します。 失敗したクラスのみが実行され、表示はそのクラスのみに対応します。
上記のクラス、つまり DemoB では、コードを次のように変更するだけです。
driver.findElement(By.name("a")).sendKeys("Bye");
上記のコードでは要素は見つかりません。 したがって、例外がスローされます。 しかし、私たちのプログラムでは例外を処理していないため、プログラムは残りのコードの実行を停止します。 この理由により、ClassB は失敗します。
まとめ
- TestNG は、Junit からヒントを得たさまざまなアノテーションを含む自動テスト フレームワークです。
- TestNG 標準レポートでレポートを生成します。これには次の内容が含まれます。
- テストケースはいくつありますか?
- 合格したテスト ケースは何件ありますか?
- 失敗したテスト ケースは何件ありますか?
- スキップされるテスト ケースは何件ありますか?
- テストクラスをテストスイートファイルに変換することで、複数のテストケースを簡単にグループ化して実行できます。
- TestNG 他のサードパーティ製ツールと簡単に統合できます。テスト ケースへの優先順位の割り当て、呼び出し回数を使用した同じテスト ケースの複数回の実行など、さまざまな機能が提供されます。
- 複数のテスト ケースの実行中にいずれかのテスト ケースが失敗した場合は、その特定のテスト ケースを個別に実行できます。
- Reporterクラスの静的メソッド「log」は、org.testngにあるログ情報を保存するために使用できます。