Seleniumとキュウリフレームワークを使用したテスト自動化:チュートリアル

Webアプリケーションは、デジタル領域でターゲットオーディエンスに接続してサービスを提供する高度な方法を求める企業にとって不可欠になっています。最近のビジネス運営におけるWebアプリの重要性を考えると、業界に関係なく、Webアプリを包括的にテストして、ハイエンドのユーザーエクスペリエンスを提供することを確認する必要があります。

自動化テストは、ソフトウェア開発ライフサイクルを加速します。さらに、開発にビヘイビア駆動開発(BDD)アプローチを採用すると、開発者、QA、非技術チームなどのさまざまな利害関係者がプロジェクトで積極的に協力できます。

シナリオは予想される動作に基づいて作成されます。ソフトウェアのテストを行い、上記のシナリオに一致するかどうかを確認します。

画像ソース

これらのシナリオは、Gherkinなどのドメイン固有言語を使用して文書化されています。各テストシナリオでは、小さな英語のようなフレーズを構成する自然言語の構成要素を使用して、アプリケーションの動作と期待される結果を記述します。これは、Gherkinで記述された自動受け入れテストの実行を可能にするCucumberなどの専用ソフトウェアツールを使用して行われます。

Cucumberとは

Cucumberは、オープンソースのテストフレームワークです。 Webアプリケーションの自動化テストのためのビヘイビア駆動開発をサポートします。テストは最初に、ユーザーの観点からシステムの予想される動作を説明する単純なシナリオ形式で記述されます。

受け入れテストに広く使用されるCucumberはRubyで記述され、テストはGherkinで記述されます。非技術的で人間が読める言語。

キュウリとセレンのテスト:協調的アプローチ

自動化されたセレンテストは開発サイクルに正確さとスピードを追加しますが、キュウリはさらにエッジを追加しますそれに、非技術的な管理の利害関係者のためにそれをより協力的にします。テストシナリオが主に動作によって駆動されるユーザー受け入れテストに広く有益なCucumberは、自動化テストを強化します。

Cucumberフレームワーク

Cucumberフレームワークは、主に3つの主要部分で構成されます。ステップ定義、およびテストランナーファイル。

機能ファイル

プロジェクトのスタンドアロンユニットまたは単一の機能(ログインなど)は、機能と呼ぶことができます。これらの各機能には、Cucumberと統合されたSeleniumを使用してテストする必要があるシナリオがあります。機能、その説明、およびテストするシナリオに関するデータを格納するファイルは、機能ファイルと呼ばれます。

キュウリのテストは、拡張子「.feature」で保存されるこれらの機能ファイルに書き込まれます。 。機能ファイルに説明を付けて、ドキュメントを読みやすくすることができます。

例:

Webサイトのログイン機能

機能ファイル名:userLogin .feature

説明:ユーザーは、正しいユーザー名とパスワードを正しいフィールドに入力するとログインできる必要があります。入力したユーザー名とパスワードが正しい場合、ユーザーはホームページに移動する必要があります。

Cucumberでテストを作成するために使用されるGIVEN、WHEN、THENなどのキーワードは注釈と呼ばれます。

  • GIVENユーザーはFirefoxを開いてログインページに移動します
  • ユーザーが正しい<ユーザー名>と<パスワード値
  • 次にユーザーはtに誘導されますホームページ

ステップ定義

機能が機能ファイルに書き込まれたので、関連するシナリオのコードを実行する必要があります。特定のシナリオで実行する必要のあるコードのバッチを知るために、ステップ定義が登場します。ステップ定義ファイルには、機能ファイルで定義されたシナリオの各ステップと実行されるコードの間のマッピングデータが格納されます。

ステップ定義では、Java関数とSeleniumコマンドの両方を使用して、コードへの機能ファイル。

例:

package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values as inputs to define the WHEN step of the feature@Then ("^user gets directed to homepage$”)//Direct to the Homepage of the application as a result of correct username and password inputs in the WHEN step. This would define the THEN step of the feature

テストランナーファイル

テストを実行するには、1つテストランナーファイルが必要です。これは、ステップ定義の場所と、テストの実行に必要なその他のプライマリメタデータを含むJUnitテストランナークラスです。

テストランナーファイルは、JUnitの@RunWith()注釈を使用します。テストの実行。また、@ CucumberOptionsアノテーションを使用して、機能ファイルの場所、ステップ定義、レポート統合などを定義します。

例:

cucumberTestパッケージのテストランナークラスと機能ファイル「src / test / Feature」の場所と「src / main / stepDefinition」フォルダのステップ定義ファイルにあります。

Cucumberフレームワークのセットアップ

Cucumberの動作と記述方法を調べる前にキュウリのセレンテストでは、最初にキュウリの設定方法を理解しましょう。下記の前提条件をインストールするだけで、ユーザーはCucumber AutomationTestingを開始する必要があります。

CucumberとSeleniumのセットアップの前提条件

  • Javaのインストール
  • インストールEclipse IDE for Java
  • Mavenのインストール
  • SeleniumWebdriverのインストール
  • JUnitのインストール
  • Cucumberのインストール

CucumberでSeleniumAutomationのテストを作成するにはどうすればよいですか?

ログイン機能のシナリオを進めて、Cucumberでサンプルテストを作成しましょう。このコードは、機能セクションで説明されているログインシナリオを実行し、正しいユーザー名とパスワードを入力するとWebサイトのホームページを開きます。

キュウリテストのベストプラクティス

ここにいくつかあります。 Cucumberテストのベストプラクティス:

  • Cucumber-java、Cucumber-junit、およびCucumber-core jarのバージョンは、シームレスな接続のために同じである必要があります。
  • 追加テストが失敗したときにスクリーンショットをキャプチャするためのコードにフックした後は、問題の診断とデバッグに役立ちます。
  • タグを使用して、タグ定義に基づいてテストを整理します。これは、すべてのテストを毎回実行する必要がない場合に役立ちます。このようなテストは、タグを使用してマークを付け、必要な場合にのみ実行できます。これにより、システムとリソースの時間と処理能力が節約されます。
  • いつものように、実際のブラウザとデバイスでCucumberSeleniumテストを実行することが重要です。 BrowserStackは、ライブと自動の両方のテスト目的で、2000以上の実際のブラウザーとデバイスのCloud SeleniumGridを提供します。サインアップして、必要なデバイス-ブラウザ-OSの組み合わせを選択し、無料でWebサイトのテストを開始するだけです。

無料でSeleniumテストを実行する

テストの自動化は、テスターの迅速な配信と最適な品質に対する高まる要求に対応します。 SeleniumのCucumberフレームワークを使用すると、特定のシナリオでソフトウェアの予想される動作を説明する自然言語構造を使用してテストシナリオを記述できるため、ユーザーの受け入れテストに最適です。

最後に、実際のデバイスでWebサイトをテストします。クラウドは、結果の完全な正確さを保証する唯一の方法です。そのため、常に実際のデバイステストを選択して、ウェブサイトのパフォーマンス、ブラウザ間の互換性、および提供されるユーザーエクスペリエンスの品質を包括的に検証してください。

Write a Comment

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