キュウリ-注釈
Annotationは事前定義されたテキストであり、特定の意味を持ちます。コンパイラ/インタプリタに、実行時に何をすべきかを知らせます。キュウリには次のいくつかの注釈があります-
Given −
テストを実行するための前提条件について説明します。
例-与えられた私はFacebookユーザーです
When −
これは、テストシナリオ実行のトリガーポイントを定義します。
例-「<username>」と入力した場合
Then −
次に、実行されるテストの期待される結果を保持します。
例-THENログインは成功するはずです。
And −
これは、任意の2つのステートメント間の論理AND条件を提供します。ANDは、GIVEN、WHEN、およびTHENステートメントと組み合わせて使用できます。
例-「<ユーザー名>」を入力し、「<パスワード>」を入力した場合
But −
これは、任意の2つのステートメント間の論理OR条件を示します。ORは、GIVEN、WHEN、およびTHENステートメントと組み合わせて使用できます。
例-THENログインは成功するはずです。しかし、ホームページは見逃してはいけません。
Scenario −
テスト中のシナリオの詳細は、キーワード「シナリオ:」の後にキャプチャする必要があります。
例-
シナリオ:
与えられた私はFacebookユーザーです
私が入るとき
そして私は
その後、ログインは成功するはずです。
しかし、ホームページは見逃してはいけません。
Scenario Outline −(後で説明します)
Examples −(後で説明します)
Background −
バックグラウンドには通常、各シナリオを実行する前に何を設定するかについての指示があります。ただし、「Before」フックの後に実行されます(後で説明します)。したがって、これは、Webブラウザーをセットアップする場合、またはデータベース接続を確立する場合のコードに使用するのに理想的です。
例-
バックグラウンド:
Facebookのホームページに移動します。
シナリオ例
注釈をよりよく理解するために、シナリオを自動化しましょう。
Step 1
次の名前のMavenテストプロジェクトを作成します AnnotationTest。
「ファイル」→「新規」→「その他」→「Maven」→「Mavenプロジェクト」→「次へ」に移動します。
グループIDを提供します(グループIDは、すべてのプロジェクトでプロジェクトを一意に識別します)。
アーティファクトIDを提供します(アーティファクトIDは、バージョンのないjarの名前です。小文字の任意の名前を選択できます)。
[完了]をクリックします。
開いた pom.xml −
Eclipseの左側にあるパッケージエクスプローラーに移動します。
プロジェクトAnnotationTestを展開します。
pom.xmlファイルを見つけます。
右クリックして、「テキストエディタで開く」オプションを選択します。
Seleniumの依存関係を追加する-これは、中央リポジトリからローカルリポジトリにダウンロードされるSeleniumjarファイルであるMavenを示します。
pom.xmlを編集モードで開き、プロジェクトタグ内に依存関係タグ(<dependencies> </ dependencies>)を作成します。
依存関係タグ内に、依存関係タグ(<dependency> </ dependency>)を作成します。
依存関係タグ内に次の情報を入力します。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
Cucumber-Javaの依存関係を追加-これは、中央リポジトリからローカルリポジトリにダウンロードされるCucumberファイルであるMavenを示します。
もう1つの依存関係タグを作成します。
依存関係タグ内に次の情報を入力します。
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
Cucumber-JUnitの依存関係を追加-これは、中央リポジトリからローカルリポジトリにダウンロードされるCucumberJUnitファイルであるMavenを示します。
もう1つの依存関係タグを作成します。
依存関係タグ内に次の情報を入力します。
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
JUnitの依存関係を追加-これは、中央リポジトリからローカルリポジトリにダウンロードされるJUnitファイルをMavenに示します。
もう1つの依存関係タグを作成します。
依存関係タグ内に次の情報を入力します。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
バイナリを確認します。
pom.xmlが正常に編集されたら、保存します。
プロジェクト→クリーンに移動-数分かかります。
Step 2
下にAnnotationという名前のパッケージを作成します src/test/java
新しく作成したプロジェクトを選択します。
右クリックして「新規」を選択します。
「パッケージ」としてオプションを選択します。
「注釈」という名前を付けます。
それを保存。
Step 3
名前の付いた機能ファイルを作成します annotation.feature。
パッケージのアウトラインを選択して右クリックします。
「新規」ファイルをクリックします。
ファイルに次のような名前を付けます outline.feature。
ファイル内に次のテキストを書き込んで保存します。
Feature: annotation
#This is how background can be used to eliminate duplicate steps
Background:
User navigates to Facebook Given
I am on Facebook login page
#Scenario with AND
Scenario:
When I enter username as "TOM"
And I enter password as "JERRY"
Then Login should fail
#Scenario with BUT
Scenario:
When I enter username as "TOM"
And I enter password as "JERRY"
Then Login should fail
But Relogin option should be available
Step 4
ステップ定義ファイルを作成します。
パッケージのアウトラインを選択して右クリックします。
「新規」ファイルをクリックします。
ファイル名を次のように指定します annotation.java
ファイル内に次のテキストを書き込んで保存します。
package Annotation;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
public class annotation {
WebDriver driver = null;
@Given("^I am on Facebook login page$")
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter username as \"(.*)\"$")
public void enterUsername(String arg1) {
driver.findElement(By.id("email")).sendKeys(arg1);
}
@When ("^I enter password as \"(.*)\"$")
public void enterPassword(String arg1) {
driver.findElement(By.id("pass")).sendKeys(arg1);
driver.findElement(By.id("u_0_v")).click();
}
@Then("^Login should fail$")
public void checkFail() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test1 Pass");
} else {
System.out.println("Test1 Failed");
}
driver.close();
}
@Then("^Relogin option should be available$")
public void checkRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test2 Pass");
} else {
System.out.println("Test2 Failed");
}
driver.close();
}
}
Step 5
ランナークラスファイルを作成します。
パッケージのアウトラインを選択して右クリックします。
「新規」ファイルをクリックします。
ファイルに次のような名前を付けます runTest.java
ファイル内に次のテキストを書き込んで保存します。
package Annotation;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
Step 6
オプション-を使用してテストを実行します
パッケージエクスプローラからrunTest.javaファイルを選択します。
右クリックしてオプションを選択します ‘Run as’
JUnitテストを選択します。
このクラスファイルを実行すると、次のことがわかります。
Facebookは新しいFirefoxWebブラウザインスタンスで開きます。
TOMは、ユーザー名フィールドへの入力として渡されます。
JERRYは、パスワードフィールドへの入力として渡されます。
ログインをクリックします。
ログインに失敗した場合のメッセージがブラウザに表示されます。
コンソールに、「テストパス」が印刷されているのがわかります
手順結果1.〜5。ユーザー名は「」、パスワードは「」で再実行されます。