Cucumber-data-tables

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

キュウリ-データテーブル

自動化に取り組んでいる間、さまざまなシナリオに直面する可能性があります。 各シナリオには、異なる意味とニーズがあります。

初めから、ソーシャルネットワーキングサイトのログイン機能の例を取り上げており、2つの入力パラメーターを渡すだけでした。 もう少し可能性を考えてみましょう。 「新規ユーザー登録」機能はどうですか? 通常、ソーシャルネットワーキングサイトに新しいユーザーを登録する際の入力パラメーターは何ですか? 次のようなもの-

  • ユーザー名
  • 電子メールアドレス
  • パスワード
  • パスワード再入力
  • 誕生日
  • 性別
  • 電話番号

機能-新規ユーザー登録。

誤った入力を渡した後、新しいユーザー登録が失敗することを確認します。

私は新しいユーザー登録ページにいます。

ユーザー名と電子メールアドレスを電子メールアドレスとパスワードとして入力し、パスワードとして、誕生日、性別、電話番号を再入力すると、ユーザー登録が失敗するはずです。

一見少し面倒です。 だから、そのような入力の塊を管理するより良い方法はありますか? 答えは「データテーブル」です。 データテーブルは、単一のタグに提供される入力のセットです。 このタグは、GIVEN、WHEN、またはTHENのいずれかです。

データテーブルの助けを借りて上記のシナリオを書いてみましょう。次のようになります-

私は新しいユーザー登録ページにいます

ページに有効なデータを入力すると

| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

その後、ユーザー登録が成功するはずです。

データテーブルの例を自動化しましょう。

  • ステップ1 *-「DataTableTest」という名前のMavenテストプロジェクトを作成します。
  • ファイル→新規→その他→Maven→Mavenプロジェクト→次へに移動します。
  • *グループID *を提供します(グループIDは、すべてのプロジェクトでプロジェクトを一意に識別します)。
  • *アーティファクトID *を提供します(アーティファクトIDはバージョンなしのjarの名前です。 小文字の任意の名前を選択できます)。
  • 完了をクリックします。
  • pom.xmlを開きます-
  • Eclipseの左側にあるパッケージエクスプローラーに移動します。
  • プロジェクトCucumberTestを展開します。
  • pom.xmlファイルを見つけます。
  • 右クリックして、「テキストエディター」で開くオプションを選択します。
  • Seleniumの依存関係を追加:これはMavenを示します。これは、どのSelenium jarファイルが中央リポジトリからローカルリポジトリにダウンロードされるかを示します。
  • pom.xmlを開いて編集モードにし、プロジェクトタグ内に依存関係タグ(<dependencies> </dependencies>)を作成します。
  • 依存関係タグ内で、依存関係タグを作成します。 (<dependency> </dependency>)。
  • 依存関係タグ内に次の情報を提供します。
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>2.47.1</version>
</dependency>
  • Cucumber-Javaの依存関係を追加-これはMavenを示します。どのCucumberファイルが中央リポジトリからローカルリポジトリにダウンロードされます。
  • もう1つの依存関係タグを作成します。
  • 依存関係タグ内に次の情報を提供します。
<dependency>
   <groupId>info.cukes</groupId>
   <artifactId>cucumber-java</artifactId>
   <version>1.0.2</version>
   <scope>test</scope>
</dependency>
  • Cucumber-JUnitの依存関係を追加-これはMavenを示します。どのCucumber JUnitファイルが中央リポジトリからローカルリポジトリにダウンロードされます。
  • もう1つの依存関係タグを作成します。
  • 依存関係タグ内に次の情報を提供します。
<dependency>
   <groupId>info.cukes</groupId>
   <artifactId>cucumber-junit</artifactId>
   <version>1.0.2</version>
   <scope>test</scope>
</dependency>
  • JUnitの依存関係を追加-これは、Mavenを示します。どのJUnitファイルが中央リポジトリからローカルリポジトリにダウンロードされます。
  • もう1つの依存関係タグを作成します。
  • 依存関係タグ内に次の情報を提供します
<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.10</version>
   <scope>test</scope>
</dependency>
  • バイナリを検証します。
  • pom.xmlが正常に編集されたら、保存します。
  • [プロジェクト]→[クリーン]に移動します-数分かかります。

ステップ2 *- *src/test/java の下に dataTable という名前のパッケージを作成する

  • ステップ3 *-フィーチャーファイルを作成します。
  • パッケージdataTable内に dataTable .featureという名前の機能ファイルを作成します(詳細な手順については、シナリオの概要を参照してください)。 次のテキストを書きます。 + 機能*-データテーブル+間違った入力を渡した後、新しいユーザー登録が失敗することを確認します。 + シナリオ: +新しいユーザー登録ページにいる場合+ページに無効なデータを入力した場合
| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

その後、ユーザー登録は失敗するはずです

  • ファイルを保存してください。
  • ステップ4 *-ステップ定義ファイルを作成します。
  • パッケージdataTable内に「dataTable.java」という名前のステップ定義ファイルを作成します(詳細な手順については、セクションシナリオの概要を参照してください)。
  • 次のコードを書きます。
package dataTable;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
import cucumber.table.DataTable;

public class stepdefinition {
   WebDriver driver = null;

   @Given("^I am on new user registration page$")
   public void goToFacebook() {
     //Intiate web browser instance. driver = new FirefoxDriver();
      driver.navigate().to("https://www.facebook.com/");
   }

   @When("^I enter invalid data on the page$")
   public void enterData(DataTable table){
     //Initialize data table
      List<list> data = table.raw();
      System.out.println(data.get(1).get(1));

     //Enter data
      driver.findElement(By.name("firstname")).sendKeys(data.get(1).get(1));
      driver.findElement(By.name("lastname")).sendKeys(data.get(2).get(1));
      driver.findElement(By.name("reg_email__")).sendKeys(data.get(3).get(1));
      driver.findElement(By.name("reg_email_confirmation__")).
         sendKeys(data.get(4).get(1));
      driver.findElement(By.name("reg_passwd__")).sendKeys(data.get(5).get(1));

      Select dropdownB = new Select(driver.findElement(By.name("birthday_day")));
      dropdownB.selectByValue("15");

      Select dropdownM = new Select(driver.findElement(By.name("birthday_month")));
      dropdownM.selectByValue("6");

      Select dropdownY = new Select(driver.findElement(By.name("birthday_year")));
      dropdownY.selectByValue("1990");

      driver.findElement(By.className("_58mt")).click();
     //Click submit button driver.findElement(By.name("websubmit")).click();
   }

   @Then("^User registration should be unsuccessful$")
   public void User_registration_should_be_unsuccessful() {
      if(driver.getCurrentUrl().equalsIgnoreCase("https://www.facebook.com/")){
         System.out.println("Test Pass");
      } else {
         System.out.println("Test Failed");
      }
      driver.close();
   }
}
  • ファイルを保存してください。
  • ステップ5 *-ランナークラスファイルを作成します。
  • パッケージ内にrunTest.javaという名前のランナークラスを作成します。
  • 次のコードを書きます。
package dataTable;

import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;

@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})

public class runTest { }
  • ファイルを保存してください。
  • オプションを使用してテストを実行します
  • パッケージエクスプローラーからrunTest.javaファイルを選択します。
  • 右クリックして、オプションとして実行を選択します。
  • JUnitテストを選択します。

正常に実行されると、次のことを確認できます。

  • Facebook Webサイトがロードされます。
  • データは登録ページに入力されます。
  • [送信]ボタンをクリックします。
  • ホームページが表示されず、コンソールに「テストパス」が書き込まれることがわかります。