Selenium-test-ng
セレン-TestNG
TestNGは強力なテストフレームワークであり、TestNGが登場する前から長い間使用されていたJUnitの拡張バージョンです。 NGは「次世代」の略です。
TestNGフレームワークは、次の機能を提供します-
- 注釈は、テストを簡単に整理するのに役立ちます。
- 柔軟なテスト構成。
- テストケースをより簡単にグループ化できます。
- テストの並列化は、TestNGを使用して実現できます。
- データ駆動型テストのサポート。
- 組み込みのレポート。
Eclipse用のTestNGのインストール
- ステップ1 *-Eclipseを起動し、[新しいソフトウェアのインストール]を選択します。
- ステップ2 *-URLに「http://beust.com/eclipse」と入力し、「追加」をクリックします。
- ステップ3 *-[リポジトリの追加]ダイアログボックスが開きます。 「TestNG」という名前を入力し、「OK」をクリックします
- ステップ4 *-「すべて選択」をクリックすると、図に示すように「TestNG」が選択されます。
- ステップ5 *-[次へ]をクリックして続行します。
- ステップ6 *-選択されている項目を確認し、[次へ]をクリックします。
- ステップ7 *-「ライセンス契約に同意します」をクリックし、「完了」をクリックします。
- ステップ8 *-TestNGはインストールを開始し、進行状況は次のように表示されます。
- ステップ9 *-ソフトウェアの有効性を確立できないため、セキュリティ警告が表示されます。 「OK」をクリックします。
- ステップ10 *-インストーラーは、変更を有効にするためにEclipseを再起動するように求めます。 「はい」をクリックします。
TestNGの注釈
JDK 5ではJava言語に注釈が正式に追加され、TestNGは注釈を使用してテストクラスに注釈を付けることを選択しました。 以下は、アノテーションを使用する利点の一部です。 TestNGの詳細については、 link:/testng/index [ここ] を参照してください。
- TestNGは、アノテーションを検索することにより、関心のあるメソッドを識別します。 したがって、メソッド名はパターンや形式に制限されません。
- 追加のパラメーターを注釈に渡すことができます。
- 注釈は強く型付けされているため、コンパイラは間違いをすぐに報告します。 *テストクラスは何も拡張する必要がなくなりました(JUnit 3のTestCaseなど)。
Sr.No. | Annotation & Description |
---|---|
1 |
注釈付きメソッドは、このスイートのすべてのテストが実行される前に一度だけ実行されます。 |
2 |
@AfterSuite 注釈付きメソッドは、このスイートのすべてのテストが実行された後に一度だけ実行されます。 |
3 |
@BeforeClass 注釈付きメソッドは、現在のクラスの最初のテストメソッドが呼び出される前に1回だけ実行されます。 |
4 |
@AfterClass 注釈付きメソッドは、現在のクラスのすべてのテストメソッドが実行された後に1回だけ実行されます。 |
5 |
@BeforeTest 注釈付きメソッドは、<test>タグ内のクラスに属するテストメソッドが実行される前に実行されます。 |
6 |
@AfterTest 注釈付きメソッドは、<test>タグ内のクラスに属するすべてのテストメソッドが実行された後に実行されます。 |
7 |
@BeforeGroups この構成メソッドが以前に実行されるグループのリスト。 このメソッドは、これらのグループのいずれかに属する最初のテストメソッドが呼び出される直前に実行されることが保証されています。 |
8 |
@AfterGroups この構成メソッドが実行されるグループのリスト。 このメソッドは、これらのグループのいずれかに属する最後のテストメソッドが呼び出された直後に実行されることが保証されています。 |
9 |
@BeforeMethod 注釈付きメソッドは、各テストメソッドの前に実行されます。 |
10 |
@AfterMethod 注釈付きメソッドは、各テストメソッドの後に実行されます。 |
11 |
@DataProvider メソッドをテストメソッドのデータを提供するものとしてマークします。 注釈付きメソッドは、各Object []にテストメソッドのパラメーターリストを割り当てることができるObject [] []を返す必要があります。 このDataProviderからデータを受信する@Testメソッドは、このアノテーションの名前と等しいdataProvider名を使用する必要があります。 |
12 |
@Factory TestNGがTestクラスとして使用するオブジェクトを返すファクトリとしてメソッドをマークします。 メソッドはObject []を返す必要があります。 |
13 |
@Listeners テストクラスのリスナーを定義します。 |
14 |
@Parameters @Testメソッドにパラメーターを渡す方法を説明します。 |
15 |
@Test クラスまたはメソッドをテストの一部としてマークします。 |
TestNG-Eclipseのセットアップ
- ステップ1 *-Eclipseを起動し、以下に示すように「新しいJavaプロジェクト」を作成します。
- ステップ2 *-プロジェクト名を入力し、「次へ」をクリックします。
- ステップ3 *-[ライブラリ]タブに移動し、以下に示すように[外部JARの追加]をクリックして、Selenium Remote ControlサーバーJARファイルを追加します。
- ステップ4 *-追加されたJARファイルがここに表示されます。 「ライブラリを追加」をクリックします。
- ステップ5 *-[ライブラリの追加]ダイアログが開きます。 [TestNG]を選択し、[ライブラリの追加]ダイアログボックスで[次へ]をクリックします。
- ステップ6 *-追加された「TestNG」ライブラリが追加され、以下に示すように表示されます。
- ステップ7 *-プロジェクトを作成すると、プロジェクトの構造は次のようになります。
- ステップ8 *-'src’フォルダーを右クリックし、[新規] >> [その他]を選択します。
- ステップ9 *-「TestNG」を選択し、「次へ」をクリックします。
- ステップ10 *-「ソースフォルダー」名を選択し、「OK」をクリックします。
- ステップ11 *-「パッケージ名」、「クラス名」を選択し、「完了」をクリックします。
- ステップ12 *-パッケージエクスプローラーと作成されたクラスが表示されます。
TestNGの最初のテスト
次に、TestNGを使用してスクリプトの作成を始めましょう。 WebDriverを理解するために使用したのと同じ例のスクリプトを作成しましょう。 デモアプリケーションhttps://www.calculator.net/[www.calculator.net]を使用して、パーセント計算を実行します。
_次のテストでは、testNGがプログラム実行フローを駆動するため、メインメソッドがないことに気付くでしょう。 ドライバーを初期化した後、「@ BeforeTest」メソッドに続いて「@Test」、「@ AfterTest」の順に実行されます。 クラスには任意の数の「@Test」注釈を含めることができますが、「@ BeforeTest」と「@AfterTest」は一度しか表示できないことに注意してください。
package TestNG;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class TestNGClass {
WebDriver driver = new FirefoxDriver();
@BeforeTest
public void launchapp() {
//Puts an Implicit wait, Will wait for 10 seconds before throwing exception
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Launch website
driver.navigate().to("http://www.calculator.net");
driver.manage().window().maximize();
}
@Test
public void calculatepercent() {
//Click on Math Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
//Click on Percent Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();
//Enter value 10 in the first number of the percent Calculator
driver.findElement(By.id("cpar1")).sendKeys("10");
//Enter value 50 in the second number of the percent Calculator
driver.findElement(By.id("cpar2")).sendKeys("50");
//Click Calculate Button
driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
//Get the Result Text based on its xpath
String result =
driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
//Print a Log In message to the screen
System.out.println(" The Result is " + result);
if(result.equals("5")) {
System.out.println(" The Result is Pass");
} else {
System.out.println(" The Result is Fail");
}
}
@AfterTest
public void terminatetest() {
driver.close();
}
}
実行
実行するには、作成したXMLを右クリックし、[実行] >> [TestNG Suite]を選択します
結果分析
出力はコンソールにスローされ、次のように表示されます。 コンソール出力には実行サマリーもあります。
TestNGの結果は、別のタブでも確認できます。 以下に示すように、「HTMLレポートビュー」ボタンをクリックします。
HTMLの結果は、次のように表示されます。