Selenium-test-ng

提供:Dev Guides
移動先:案内検索

セレン-TestNG

TestNGは強力なテストフレームワークであり、TestNGが登場する前から長い間使用されていたJUnitの拡張バージョンです。 NGは「次世代」の略です。

TestNGフレームワークは、次の機能を提供します-

  • 注釈は、テストを簡単に整理するのに役立ちます。
  • 柔軟なテスト構成。
  • テストケースをより簡単にグループ化できます。
  • テストの並列化は、TestNGを使用して実現できます。
  • データ駆動型テストのサポート。
  • 組み込みのレポート。

Eclipse用のTestNGのインストール

  • ステップ1 *-Eclipseを起動し、[新しいソフトウェアのインストール]を選択します。

Selenium IDE 93

Selenium IDE 94

  • ステップ3 *-[リポジトリの追加]ダイアログボックスが開きます。 「TestNG」という名前を入力し、「OK」をクリックします

Selenium IDE 95

  • ステップ4 *-「すべて選択」をクリックすると、図に示すように「TestNG」が選択されます。

Selenium IDE 96

  • ステップ5 *-[次へ]をクリックして続行します。

Selenium IDE 97

  • ステップ6 *-選択されている項目を確認し、[次へ]をクリックします。

Selenium IDE 98

  • ステップ7 *-「ライセンス契約に同意します」をクリックし、「完了」をクリックします。

Selenium IDE 99

  • ステップ8 *-TestNGはインストールを開始し、進行状況は次のように表示されます。

Selenium IDE 100

  • ステップ9 *-ソフトウェアの有効性を確立できないため、セキュリティ警告が表示されます。 「OK」をクリックします。

Selenium IDE 101

  • ステップ10 *-インストーラーは、変更を有効にするためにEclipseを再起動するように求めます。 「はい」をクリックします。

Selenium IDE 102

TestNGの注釈

JDK 5ではJava言語に注釈が正式に追加され、TestNGは注釈を使用してテストクラスに注釈を付けることを選択しました。 以下は、アノテーションを使用する利点の一部です。 TestNGの詳細については、 link:/testng/index [ここ] を参照してください。

  • TestNGは、アノテーションを検索することにより、関心のあるメソッドを識別します。 したがって、メソッド名はパターンや形式に制限されません。
  • 追加のパラメーターを注釈に渡すことができます。
  • 注釈は強く型付けされているため、コンパイラは間違いをすぐに報告します。 *テストクラスは何も拡張する必要がなくなりました(JUnit 3のTestCaseなど)。
Sr.No. Annotation & Description
1
  • @BeforeSuite*

注釈付きメソッドは、このスイートのすべてのテストが実行される前に一度だけ実行されます。

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プロジェクト」を作成します。

Selenium IDE 53

  • ステップ2 *-プロジェクト名を入力し、「次へ」をクリックします。

Selenium IDE 103

  • ステップ3 *-[ライブラリ]タブに移動し、以下に示すように[外部JARの追加]をクリックして、Selenium Remote ControlサーバーJARファイルを追加します。

Selenium IDE 113

  • ステップ4 *-追加されたJARファイルがここに表示されます。 「ライブラリを追加」をクリックします。

Selenium IDE 104

  • ステップ5 *-[ライブラリの追加]ダイアログが開きます。 [TestNG]を選択し、[ライブラリの追加]ダイアログボックスで[次へ]をクリックします。

Selenium IDE 105

  • ステップ6 *-追加された「TestNG」ライブラリが追加され、以下に示すように表示されます。

Selenium IDE 106

  • ステップ7 *-プロジェクトを作成すると、プロジェクトの構造は次のようになります。

Selenium IDE 107

  • ステップ8 *-'src’フォルダーを右クリックし、[新規] >> [その他]を選択します。

Selenium IDE 108

  • ステップ9 *-「TestNG」を選択し、「次へ」をクリックします。

Selenium IDE 109

  • ステップ10 *-「ソースフォルダー」名を選択し、「OK」をクリックします。

Selenium IDE 110

  • ステップ11 *-「パッケージ名」、「クラス名」を選択し、「完了」をクリックします。

Selenium IDE 111

  • ステップ12 *-パッケージエクスプローラーと作成されたクラスが表示されます。

Selenium IDE 112

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]を選択します

Selenium IDE 189

結果分析

出力はコンソールにスローされ、次のように表示されます。 コンソール出力には実行サマリーもあります。

Selenium IDE 114

TestNGの結果は、別のタブでも確認できます。 以下に示すように、「HTMLレポートビュー」ボタンをクリックします。

Selenium IDE 115

HTMLの結果は、次のように表示されます。

Selenium IDE 117