Selenium   Cucumber (BDDフレームワーク)


このチュートリアルでは、統合する方法を学びます Cucumber   Selenium ウェブドライバー。

何ですか Cucumber?

Cucumber は、ビヘイビア駆動開発 (BDD) をサポートするテスト手法です。Gherkin 言語を使用して、アプリケーションの動作を簡単な英語のテキストで説明します。

詳細については、こちらをご覧ください – https://www.guru99.com/cucumber-tutorials.html

何ですか Selenium?

Selenium のための自動化ツールです 機能テスト Web ベースのアプリケーションの。 Selenium Java、Ruby、Python C# などのさまざまな言語をサポートしています。

詳細については、こちらをご覧ください – https://www.guru99.com/selenium-tutorial.html

なぜ使用 Cucumber   Selenium?

Cucumber と Selenium は 2 つの人気のあるテクノロジーです。

ほとんどの組織が使用しているのは、 Selenium 機能テスト用。を使用しているこれらの組織は、 Selenium、統合したい Selenium   Cucumber as Cucumber MAKES 申請フローが読みやすく、理解しやすいです。

Cucumber このツールは、行動駆動開発フレームワークに基づいており、 架け橋として機能する 以下の人々の間で:

  1. ソフトウェアエンジニア兼ビジネスアナリスト。
  2. 手動テスターと自動テスター。
  3. マニュアルテスターと開発者。

Cucumber BDDフレームワークも クライアントがアプリケーションコードを理解するのに役立ちます プレーンテキストの Gherkin 言語を使用しているためです。組織内の誰でもソフトウェアの動作を理解できます。Gherkin の構文は、読みやすく理解しやすいシンプルなテキストです。

Cucumber   Selenium

使用の前提条件 Cucumber   Selenium

始める前に Cucumber Selenium 統合するには、次の項目が必要です。

  • Selenium jar ファイル:
  • Selenium-サーバー-スタンドアロン

でダウンロードできます http://www.seleniumhq.org/download/

使用の前提条件 Cucumber   Selenium

Jarファイル Cucumber :

  • Cucumber- コア
  • Cucumber-html
  • cobertura コードカバレッジ
  • Cucumber-ジャバ
  • Cucumber-ジュニット
  • Cucumber-jvm-deps
  • Cucumber-報告
  • ハムクレストコア
  • ガーキン
  • ジュニット

でダウンロードできます https://mvnrepository.com/search?q=Cucumber

ファイルを検索して XNUMX つずつ個別にダウンロードする必要があります。

たとえば、jarファイルの1つをダウンロードする方法を説明します。Cucumber-コア。"

上記のダウンロードリンクをクリックしてください。下のサイトにリダイレクトされます。次に、特定のjarを検索します。つまり、「Cucumber 以下のスクリーンショットに示すように、「Core」を選択します。

使用の前提条件 Cucumber   Selenium

次のページで、バージョン 1.2.2 をクリックし、

使用の前提条件 Cucumber   Selenium

次の画面でダウンロードをクリックして「Cucumber Core' jar ファイル。

使用の前提条件 Cucumber   Selenium

注意: 簡単にするために、Maven からダウンロードするために必要な jar ファイルをバンドルしました。 こちら。 時間の経過とともに、これらの jar は更新され、互換性がなくなる可能性があります。 上記の方法でダウンロードしてください。

自動テストの使用 Cucumber   Selenium.

使用手順を学んでみましょう Cucumber Selenium をステップバイステップで使用します。ここでは 3 つのシナリオについて説明します。

  • シナリオ 1: コンソールにテキストを出力します。
  • シナリオ 2: ログイン資格情報を入力し、値をリセットします。
  • シナリオ 3: Guru99 にログイン資格情報を入力し、値をリセットします。 これを 3 セットのデータに対して実行します。

シナリオ 1: コンソールにテキストを出力します。

このシナリオでは、コンソールにテキストを印刷するだけです。 Cucumber.

ステップ1) Eclipse でプロジェクトを作成します。

創造する Java 「Cucumber連絡先Selenium以下のスクリーンショットに示すように。

自動テストの使用 Cucumber   Selenium

自動テストの使用 Cucumber   Selenium

ステップ2) プロジェクトに Jar ファイルを追加します。

プロジェクトを右クリック > プロパティを選択 > Java ビルド パス。先ほどダウンロードしたライブラリをすべて追加します。

自動テストの使用 Cucumber   Selenium

ステップ3) フィーチャーファイルの作成

機能ファイルを作成するには、以下のスクリーンショットに示すように、まず機能フォルダーを作成します。

自動テストの使用 Cucumber   Selenium

ここで、フォルダー名「機能」を入力し、「完了」ボタンをクリックします。

自動テストの使用 Cucumber   Selenium

自動テストの使用 Cucumber   Selenium

次に、「機能」フォルダーに「MyTest.feature」という名前で機能ファイルを作成します。プロセスはフォルダーの作成と似ています。

自動テストの使用 Cucumber   Selenium

ご注意: インストールする必要がある場合があります Cucumber Eclipse これを機能させるためのプラグイン。移動 — [ヘルプ] -> [新しいソフトウェアのインストール] -> リンクをコピーして貼り付けます http://cucumber.github.io/cucumber-eclipse/update-site/ インストールする

ステップ4) シナリオを書きます。

以下の行は、次に示すように Gherkin 言語を使用して「MyTest.feature」ファイルに書き込まれます。

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

コードの説明

1行目) この行にはビジネス機能を記述します。

2行目) この行では、テストするシナリオを記述します。

3行目) この行では前提条件を定義します。

4行目) この行では、実行する必要があるアクションを定義します。

4行目) この行では、期待される結果または結果を定義します。

ステップ5) Seleniumテストランナースクリプトの作成 Selenium Cucumber フレームワーク設計

ここでは「TestRunner」パッケージを作成し、その下に「Runner.java」クラスファイルを作成します。

package TestRunner;		

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

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

上記で Cucumber Java サンプルコードでは、 キュウリのテスト 次の注釈を使用します。

@RunWith() アノテーションは、テストの実行を開始するテスト ランナー クラスについて示します。

@CucmberOptions() アノテーションは、機能ファイル、ステップ定義などのキュウリテストのいくつかのプロパティを設定するために使用されます。

TestRunner ファイルのスクリーンショット。

自動テストの使用 Cucumber   Selenium

ステップ6) ステップ定義スクリプトを作成します。

ここで「StepDefinition」パッケージを作成し、その下に「Steps.java」スクリプトファイルを作成します。ここで実際にテストを実行するためのSeleniumスクリプトを記述します。 Cucumber 方法。

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

上記のコードでは、「Steps」という名前のクラスが作成されます。 Cucumber アノテーションはフィーチャーファイルとのマッピングに使用されます。各アノテーションメソッドは次のように定義されます。

@ギヴン Firefoxを開いてアプリケーションを起動するメソッドを定義するアノテーション

@いつ ユーザー名とパスワードを入力するためのアノテーション定義メソッド

@それから アノテーションは資格情報をリセットするメソッドを定義します

各メソッドでは、メッセージを出力するだけです。

以下は、「Steps.java」スクリプトとプロジェクト ツリーのスクリーンショットです。

自動テストの使用 Cucumber   Selenium

ご注意: ステップ定義は、この cucumber メソッドで実行するステップに他なりません。

ステップ7) スクリプトを実行します。

ユーザーは、以下のスクリーンショットに示すように、テスト ランナー スクリプト、つまり「Runner.java」からこのスクリプトを実行できます。

自動テストの使用 Cucumber   Selenium

ステップ8) 出力を分析します。

「Runner.java」スクリプトを実行すると、コンソールにテキストが表示されます。 これは、「Steps.java」スクリプトで定義されているのと同じテキストです。

自動テストの使用 Cucumber   Selenium

シナリオ 2: ログイン資格情報を入力し、値をリセットします。

ここでは、Guru99 デモのログイン ページに資格情報を入力し、値をリセットします。

シナリオ2では、「Steps.java」スクリプトのみを更新する必要があります。ここでは、以下の手順でSeleniumスクリプトを実際に記述します。まず、以下を追加する必要があります。 Selenium jar ファイルをこのプロジェクトに追加します。

ログイン資格情報を入力し、値をリセットします

ステップ1) ここでは、以下のコードとスクリーンショットに示すように、「Steps.java」スクリプトを更新します。

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

上記の Selenium スクリプトのスクリーンショット。

ログイン資格情報を入力し、値をリセットします

ステップ2) スクリプトを実行します。

更新後、Runner.java を実行します。

ステップ3) 出力を分析します。

出力には次の内容が表示されます。

  • ブラウザが起動しました。
  • Guru99銀行のデモサイトがオープンしました。
  • ユーザー名とパスワードはログインページに表示されます。
  • 値をリセットします。

ログイン資格情報を入力し、値をリセットします

シナリオ 3: Guru99 にログイン資格情報を入力し、値をリセットします。 これを 3 セットのデータに対して実行します。

ここでは、「Step.java」と機能ファイルの両方を更新する必要があります。

ステップ1) 以下に示すように機能ファイルを更新します。

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

ログイン認証情報を入力してください

ステップ2) 次に、Step.java スクリプトを更新します。

ここでは、パラメータを渡すようにメソッドを更新し、以下に示す更新されたスクリプトを実行します。

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

ログイン認証情報を入力してください

ステップ3) 次に、更新されたスクリプトを実行します。

以下の画面は、スクリプトの正常な実行と各データセットにかかった時間を示しています。

ログイン認証情報を入力してください

ステップ4) 出力を分析します。

出力には次の内容が表示されます。

以下の出力はデータセットの数、つまり 3 セットだけ繰り返されます。

  • ブラウザが起動しました。
  • Guru99銀行のデモサイトがオープンしました。
  • ユーザー名とパスワードはログインページに表示されます。
  • 値をリセットします。

ログイン認証情報を入力してください

まとめ

Cucumber 非常に人気のある BDD ツールです。読みやすく、技術者や非技術者を含むすべての関係者が理解できます。

Cucumber と統合することができます Selenium 次の3つの手順を使用します

  1. Gherkin 言語を使用して機能とシナリオを段階的に定義する機能ファイルを作成します。
  2. テストランナーファイルを作成します。このファイルでは、 Cucumber BDDフレームワークで Selenium。このスクリプトを実行します。
  3. このパッケージで定義される実際の Selenium スクリプトであるステップ定義を作成します。

続きを読む readmore