Selenium Cucumber を使用 (BDD フレームワーク)


このチュートリアルでは、Cucumber を Selenium ウェブドライバー。

キュウリとは何ですか?

Cucumber は、動作駆動開発 (BDD) をサポートするテスト アプローチです。 アプリケーションの動作をガーキン言語を使用した簡単な英語のテキストで説明します。

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

何ですか Selenium?

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

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

キュウリを使用する理由 Selenium?

キュウリと Selenium は 2 つの人気のあるテクノロジーです。

ほとんどの組織が使用しているのは、 Selenium 機能テスト用。を使用しているこれらの組織は、 Selenium、統合したい Selenium キュウリと一緒にキュウリが作るように 申請フローが読みやすく、理解しやすいです。

Cucumber ツールは、次のような動作駆動開発フレームワークに基づいています。 架け橋として機能する フォロの間wing 人:

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

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

キュウリ入り Selenium

Cucumber を使用するための前提条件 Selenium

キュウリを始める前に Selenium 統合するには次のことが必要ですwing アイテム:

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

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

Cucumber を使用するための前提条件 Selenium

Jar ファイル Cucumber の場合:

  • キュウリの芯
  • キュウリ-html
  • cobertura コードカバレッジ
  • キュウリ-ジャワ
  • きゅうり-junit
  • キュウリ-jvm-deps
  • キュウリの報告
  • ハムクレストコア
  • ガーキン
  • Junit

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

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

たとえば、jar ファイルの XNUMX つ、つまり「Cucumber-core」をダウンロードする方法を示します。

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

Cucumber を使用するための前提条件 Selenium

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

Cucumber を使用するための前提条件 Selenium

次の画面で、ダウンロードをクリックして「Cucumber Core」jar ファイルを取得します。

Cucumber を使用するための前提条件 Selenium

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

Cucumber を使用した自動テスト Selenium.

Cucumber を使用する手順を学習しましょう selenium 一歩ずつ。ここでは 3 つのシナリオについて説明します。

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

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

このシナリオでは、Cucumber を使用してコンソール内のテキストを印刷するだけです。

ステップ1) プロジェクトを作成する eclipse.

「CucumberWith」という名前のJavaプロジェクトを作成します。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 キュウリのフレームワーク設計

ここでは「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 サンプル コードでは、 キュウリのテスト 以下を使用してwing 注釈:

@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) 出力を分析します。

出力では次のようになります。wing:

  • ブラウザが起動しました。
  • 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) 出力を分析します。

出力では次のようになります。wing:

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

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

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

まとめ

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

Cucumber と統合できます Selenium フォローを使用してwing 3の手順

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