Cucumber ToolとSeleniumを使用した自動化テスト– Seleniumチュートリアル#30

前回のSeleniumチュートリアルでは、高速化するための分散テスト実行環境であるSeleniumGridを紹介しました。テストパスの実行。

この包括的なSeleniumトレーニングシリーズの最後に、高度なSeleniumテストと関連する概念を学習しています。

このチュートリアルと次のチュートリアルでは、受け入れテストを実行するためにSeleniumで使用されるCucumber– Behavior Driven Development(BDD)フレームワークを紹介します。

Cucumberの紹介

キュウリは、Behavior Driven Development(BDD)フレームワークに基づくツールであり、Webアプリケーションの受け入れテストを作成するために使用されます。これにより、ビジネスアナリスト、開発者、テスターなどが読みやすく理解しやすい形式(平易な英語など)で機能検証を自動化できます。

キュウリの機能ファイルは、すべての人にとって優れたドキュメントとして役立ちます。 BDDフレームワークもサポートするJBehaveのような他の多くのツールがあります。当初、CucumberはRubyで実装され、その後Javaフレームワークに拡張されました。どちらのツールもネイティブJUnitをサポートしています。

ビヘイビア駆動開発はテスト駆動開発の拡張であり、特定のコードをテストするのではなく、システムをテストするために使用されます。 BDDとBDDテストの記述スタイルについて詳しく説明します。

CucumberはSelenium、Watir、Capybaraなどと一緒に使用できます。CucumberはPerl、PHP、Python、Netなどの他の多くの言語をサポートしています。このチュートリアルでは、Javaを言語として使用するキュウリに焦点を当てます。

キュウリの基本

キュウリを理解するには、キュウリのすべての機能とその使用法を知る必要があります。

#1)機能ファイル:

機能ファイルは、テスト自動化ステップまたは受け入れテストを作成するために使用されるキュウリの重要な部分です。これは、ライブドキュメントとして使用できます。手順はアプリケーションの仕様です。すべての機能ファイルは.feature拡張子で終わります。

サンプル機能ファイル:

機能:ログイン機能機能

ログイン機能を確実に機能させるために、
キュウリテストを実行して機能していることを確認したい

シナリオ:ログイン機能

ユーザーがSOFTWARETETINGHELP.COMに移動した場合
ユーザーがユーザー名を「USER」として使用してログインした場合」とパスワード「PASSWORD」
ログインに成功するはずです

シナリオ:ログイン機能

ユーザーがSOFTWARETETINGHELP.COMに移動すると、
ユーザー名を「 USER1」とパスワード「PASSWORD1」
エラーメッセージがスローされます

#2)機能:

これは、高レベルのビジネス機能に関する情報を提供します(前を参照)例)およびテスト対象のアプリケーションの目的。誰もが最初の機能ステップを読むことで機能ファイルの意図を理解できるはずです。この部分は基本的に簡潔にされています。

#3)シナリオ:

基本的に、シナリオはテスト中の特定の機能を表します。シナリオを見ることで、ユーザーはシナリオの背後にある意図とテストの内容を理解できるはずです。各シナリオは、与えられた、いつ、そしてフォーマットに従う必要があります。この言語は「ガーキン」と呼ばれます。

  1. 指定:前述のように、指定は前提条件を指定します。基本的には既知の状態です。
  2. いつ:これは何らかのアクションを実行するときに使用されます。上記の例のように、ユーザーがユーザー名とパスワードを使用してログインしようとすると、アクションになります。
  3. 次に:期待される結果または結果は次のようになります。ここに配置されます。例:ログインが成功し、ページナビゲーションが成功したことを確認します。
  4. 背景:各シナリオで実行する必要があるステップがある場合は常に、それらのステップをバックグラウンドに配置する必要があります。例:ユーザーは各シナリオの前にデータベースをクリアする必要があります。そうすれば、それらのステップをバックグラウンドに置くことができます。
  5. そして:そして、2つ以上の同じタイプのアクションを組み合わせるために使用されます。

例:

機能:ログイン機能機能

シナリオ:ログイン機能
ユーザーがSOFTWARETETINGHELP.COMに移動した場合
ユーザーがユーザー名を「USER」として使用してログインした場合
そしてpasswo rd as “password”
ログインに成功する必要があります
ホームページが表示されます

背景の例:

背景:

データベース管理者としてログインしているユーザー
そしてすべてのジャンク値がクリアされます

#4)シナリオの概要:

シナリオの概要は、同じテストを異なる方法で実行する必要がある場合に使用されますデータセット。同じ例を見てみましょう。ユーザー名とパスワードの複数の異なるセットを使用してログイン機能をテストする必要があります。

機能:ログイン機能機能

ログイン機能が機能することを確認するために、
実行したいキュウリテストが機能していることを確認します

シナリオの概要:ログイン機能

ユーザーがソフトウェアテストヘルプに移動します。COM
ユーザーがユーザー名を<ユーザー名>およびパスワード<として使用してログインする場合password >
ログインに成功するはずです

例:
|ユーザー名|パスワード|
|トム|パスワード1 |
|ハリー| password2 |
|ジェリー| password3 |

注:

  1. 上記の例に示すように、列名はパラメーターとしてWhenステートメントに渡されます。
  2. シナリオの代わりに、シナリオの概要を使用する必要があります。
  3. 例を使用して、さまざまな引数を表形式で渡します。垂直パイプは、2つの異なる列を分離するために使用されます。例には、さまざまな列を含めることができます。

#5)タグ:

デフォルトでは、Cucumberはすべての機能ファイルのすべてのシナリオを実行します。リアルタイムプロジェクトでは、常に実行する必要のない機能ファイルが何百も存在する可能性があります。

例:スモークテストに関連する機能ファイルを常に実行する必要はありません。したがって、スモークテストに関連し、@ SmokeTestタグを使用してキュウリテストを実行する各機能ファイルでタグを無煙として言及するとします。 Cucumberは、指定されたタグに固有の機能ファイルのみを実行します。以下の例に従ってください。 1つの機能ファイルで複数のタグを指定できます。

単一のタグの使用例:

@SmokeTest

機能:ログイン機能機能

ログイン機能が機能することを確認するために、
キュウリテストを実行して機能していることを確認したい

シナリオの概要:ログイン機能

ユーザーがSOFTWARETESTINGHELPに移動した場合。 COM
ユーザーがユーザー名を<ユーザー名>およびパスワード<として使用してログインする場合password >
ログインに成功するはずです

複数のタグの使用例:

以下に示すように、同じ機能ファイルの例ログインテストシナリオだけでなく、スモークテストシナリオにも使用できます。スモークテスト用のスクリプトを実行する場合は、@ SmokeTestを使用します。同様に、ログインテスト用にスクリプトを実行する場合は、@ LoginTestタグを使用します。

機能ファイルとシナリオには、任意の数のタグを指定できます。

@SmokeTest @ LoginTest

機能:ログイン機能機能

ログイン機能が機能することを確認するために、
キュウリテストを実行して機能していることを確認したい

シナリオの概要:ログイン機能

ユーザーがSOFTWARETETINGHELP.COMに移動した場合
ユーザーがユーザー名を<ユーザー名>とパスワード< password >
ログインに成功するはずです

同様に、次のことができます。機能ファイルで特定のシナリオを実行するためのタグを指定します。以下の例を確認して、特定のシナリオを実行してください。

機能:ログイン機能機能

ログイン機能が機能することを確認するために、
キュウリテストを実行して、それが機能することを確認します。動作中

@positiveScenario
シナリオ:ログイン機能

与えられたユーザーはSOFTWARETETINGHELP.COMに移動します
ユーザーがユーザー名を「USER」、パスワードを「PASSWORD」としてログインすると
ログインが成功するはずです

@negaviveScenario
シナリオ:ログイン機能

ユーザーがSOFTWARETETINGHELP.COMに移動すると
ユーザー名を「USER1」として使用してログインする場合およびパスワード「PASSWORD1」
エラーメッセージがスローされます

#6)JUnit Runner:

特定の機能ファイルを実行するには、cucumberは標準のJUnit Runnerを使用し、@ Cucumberでタグを指定します。オプション。カンマ区切りを使用して、複数のタグを指定できます。ここで、レポートのパスと生成するレポートのタイプを指定できます。

Junitランナーの例:

同様に、キュウリに複数のタグを実行するように指示できます。以下の例は、キュウリで複数のタグを使用してさまざまなシナリオを実行する方法を示しています。

#7)キュウリレポート:

キュウリは、独自のHTML形式を生成します。ただし、Jenkinsまたはbambooツールを使用すると、より適切なレポートを作成できます。レポートの詳細については、キュウリの次のトピックで説明します。

キュウリプロジェクトの設定:

キュウリプロジェクトの設定の詳細については、次のチュートリアルで別途説明します。プロジェクトのセットアップの詳細については、CucumberチュートリアルPart2を参照してください。 cucumberに追加のソフトウェアインストールは必要ないことを忘れないでください。

機能ファイルの実装:

機能ファイルをテストするには、これらの手順をJavaで実装する必要があります。指定された、when、thenステートメントを含むクラスを作成する必要があります。 Cucumberはその注釈を使用し、すべてのステップがそれらの注釈に埋め込まれます(与えられた場合、いつ、その後)。各フレーズは「^」で始まり、Cucumberがステップの開始を理解できるようにします。同様に、各ステップは「$」で終わります。ユーザーは正規表現を使用して、さまざまなテストデータに合格できます。正規表現は、フィーチャステップからデータを取得し、ステップ定義に渡します。パラメータの順序は、機能ファイルから渡される方法によって異なります。プロジェクトのセットアップと機能ファイルとJavaクラス間のマッピングについては、次のチュートリアルを参照してください。

例:

以下の例は、機能ファイルの実装方法を示しています。

この例では、セレンAPIを使用していません。これは、キュウリがスタンドアロンフレームワークとしてどのように機能するかを示すためのものです。セレンとキュウリの統合については、次のチュートリアルに従ってください。

キュウリランナークラスを実行すると、キュウリは機能ファイルの手順の読み取りを開始します。たとえば、@ smokeTestを実行すると、キュウリは機能ステップとシナリオのステートメントを読み取ります。キュウリがGivenステートメントを見つけるとすぐに、同じGivenステートメントでJavaファイルが検索されます。 Javaファイルで同じステップが見つかった場合、cucumberは同じステップに指定された関数を実行します。それ以外の場合、cucumberはステップをスキップします。

結論

このチュートリアルでは、次の機能について説明しました。キュウリツールとそのリアルタイムシナリオでの使用法。
キュウリは、理解しやすく、読みやすく、ビジネス機能が含まれているため、多くのプロジェクトで最も人気のあるツールです。

次の章では、 cucumberのセットアップ方法–javaプロジェクトとSeleniumWebDriverをCucumberと統合する方法。

最終更新日:2021年1月18日午前6時40分

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です