what is hybrid framework selenium
この有益なチュートリアルでは、ハイブリッドフレームワークとは何か、Seleniumハイブリッドドリブンフレームワークの使用法とコンポーネント、およびその実装方法について説明します。
ハイブリッドフレームワークとは何ですか?
ハイブリッドドリブンフレームワークは、データドリブンフレームワークとキーワードドリブンフレームワークの両方を組み合わせたものです。
ここでは、キーワードとテストデータが外部化されています。キーワードは別のJavaクラスファイルで維持され、テストデータはプロパティファイル/エクセルファイルで維持できます/ TestNGフレームワークのデータプロバイダーを使用できます。
=> ここでセレントレーニングチュートリアルのA-Zを見るにはここをチェックしてください。
学習内容:
Windows10用の無料のSQLソフトウェア
ハイブリッドフレームワークの概要
これがビデオチュートリアルです:
ハイブリッド駆動型フレームワークは主に持っていない手動テスターが使用しますプログラミング言語に関する多くの知識。このような人々は、フレームワークで何もコーディングしなくても、キーワード、テストデータ、オブジェクトリポジトリを確認して、すぐにテストケースの作成を開始できます。
ハイブリッド駆動フレームワークのコンポーネント
ハイブリッドフレームワークのコンポーネントは、キーワード駆動型フレームワークのコンポーネントに似ていますここでは、すべてのテストデータとキーワードが外部化され、スクリプトがより一般化された形式で表示されます。
- 関数ライブラリ
- キーワードを保存するExcelシート
- デザインテストケーステンプレート
- 要素/ロケーターのオブジェクトリポジトリ
- テストスクリプトまたはドライバースクリプト
#1)関数ライブラリ
ユーザー定義メソッドは、ユーザーアクションごとに作成されます。つまり、キーワードはライブラリファイルに作成されます。
例えば: 以下のテストケースを自動化するためのインスタンスを取り上げましょう。
テストケース番号 | 説明 | テスト手順 | 期待される結果 | ||
---|---|---|---|---|---|
AssertElement | xpath | // div (contains(@ id、 'usericon')) | 表示 | ||
1 | Amazonロゴが存在することを確認します | 1.URLを入力します-https://www.amazon.com | アマゾンのロゴはホームページに表示する必要があります | ||
二 | 有効なサインインを確認する | 1.URLを入力します-https://www.amazon.com 2. (サインイン)リンクをクリックします 3.有効なメールアドレスを入力します 4. (続行)をクリックします 5.有効なパスワードを入力します 6.SignInButtonをクリックします | ユーザーアイコンがホームページに表示されている必要があります | ||
3 | 不正なログイン | 1.URLを入力します-https://www.amazon.com 2. (サインイン)リンクをクリックします 3.無効なメールアドレスを入力します 4. (続行)をクリックします | このエラーメッセージには、「アカウントが見つかりません」が含まれている必要があります |
最初に、テストケースとそのテストステップが分析され、そのアクションが書き留められます。
言ってやる TC 01: Amazonロゴが存在することを確認します-ユーザーアクションは次のようになります:URLを入力してください
に TC 02: 有効なサインインの確認-ユーザーアクションは、URLの入力、クリック、タイプインです。
に TC03: 無効なログインの確認-ユーザーアクションは、URLの入力、クリック、入力です。
これで、ライブラリファイルが作成され、アクションごとに次のようにキーワードが定義されます。
.net開発者へのインタビューの質問
キーワード.java
package Keywords.Defined; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; // driver object is declared //method for entering URL – Keyword is ‘enter_URL’ public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); } //method for typing action – Keyword is ‘type’ public void typeIn(WebDriver driver, String locatorValue, String locatorType, String testdata) { driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); } //method for click action – Keyword is ‘click’ public void click(WebDriver driver, String locatorValue, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
#2)キーワードを保存するExcelシート
ライブラリファイルで作成されたキーワードは、このフレームワークを使用して理解できるように、説明付きのExcelシートに保存されます。
#3)テストケーステンプレートの設計
フレームワーク用にテストケーステンプレートが作成されます。従うべき特定のテンプレートはありません。ハイブリッドフレームワークに従って、テストデータとキーワードの両方を外部化する必要があります。 したがって、それに応じてテンプレートが作成されます。例えば:
テストケース2の場合 –有効なサインインを確認します
テスト手順 | ロケータータイプ | ロケーター値 | テストデータ | AssertionType | 期待値 |
---|---|---|---|---|---|
URLを入力 | https://www.amazon.com | ||||
クリック | xpath | // div (contains(@ id、 'SignIn')) | |||
typeIn | xpath | // div (contains(@ id、 'email')) | test@gmail.com | ||
クリック | xpath | // div (contains(@ id、 'continue')) | |||
typeIn | id | パスワード | Password @ 123 | ||
クリック | id | ログイン |
同様に、テストステップはテストケースごとに別々のシートに記入されています。
#4)要素のオブジェクトリポジトリ
Webページ上のすべての要素に対して個別のリポジトリが維持されます。各WebElementは、オブジェクトリポジトリ(この場合はプロパティファイル)で名前とそれに続く値で参照されます。テストケーステンプレートはオブジェクト名を保持し、その値は以下のようにリポジトリから取得されます。
ここで、LoginLinkはオブジェクトの名前であり、その値はOR.propertiesから ‘// div (contains(@id、’ SignIn ’))として読み取られます。
したがって、ObjectRepositoryから値を読み取るコードは、スクリプトKeywords.javaに含まれます。
例えば ライブラリファイル:Keywords.javaの「クリック」アクションを検討してください
public class Keywords { public void click(WebDriver driver, String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName, locatorType)).click(); } By getObject(String ObjectName, String locatorType) throws IOException{ //Object Repository is opened File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); //Properties file is read Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by class else if(locatorType.equalsIgnoreCase('ID')){ return By.Id(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } return null; } }
テストケースのテストデータのオブジェクトリポジトリ
フレームワークをより一般化して、スクリプトに含まれるすべてのテストデータを外部化する方法の簡単な例を示します。
- テストケーステンプレートからのテストデータの外部化:
同様に、テストデータもプロパティファイルから読み取られます。
- 一般的なスクリプトのテストデータのオブジェクトリポジトリ
ブラウザ名、実行可能ドライバの場所、テストケースのファイル名などの他の一般的なデータも、別のリポジトリで外部化できます。
上記の例では、ブラウザパラメータはプロパティファイル–Basic.propertiesで外部化されています。
- TestNG Suiteからのテストデータの受け渡し:
TestDataは、TestNGのスイートファイルからメソッドに渡すこともできます。
使用されるクラスのすぐ上にあるTestNG.xmlファイルで呼び出されるタグを使用します。
構文:
テストスイートをパラメーター名とその値で指定すると、スクリプトでアノテーションを使用して、値を使用するメソッドを指定します。これは、@ Parametersアノテーションを使用して指定されます。
構文: @Parameters({“ value_to_be_passed”})
複数のパラメータを次のようにメソッドに渡すこともできます。
構文:
@Parameters({“Chrome”}, {“ TestCase.xls”}, {“ chromedriver.exe”}) public void init(String Browser, String SheetName, String DriverLocation){ ….. …… ………. }
これは同じパラメータの複数の値を参照するのではなく、異なるパラメータの複数の値のみを取得することに注意してください。
アンドロイドのための最高のmp3ダウンローダー
#5)ドライバースクリプト
これには、テストケーステンプレートのExcelシートからすべてのテストケースを読み取るためのメインロジックが含まれており、ライブラリファイルから読み取ることで対応するアクションを実行します。スクリプトは、作成されたテストケーステンプレートに基づいて設計されています。
結論
したがって、ハイブリッドフレームワークを作成して使用し、任意のアプリケーションを自動化できます。これにより、作成されたフレームワークを使用して複数のアプリケーションを自動化できるため、自動化コードのスクリプト作成にかかる工数が削減されます。
同様に、フレームワークはプロジェクトのニーズに応じて作成し、自動化の目的で使用できます。
Seleniumに関する一連の有益なチュートリアルを楽しんでいただけたでしょうか。
=> ここですべてのSeleniumチュートリアルを確認してください。
推奨読書
- ApachePOIを使用したSeleniumWebDriverのデータ駆動型フレームワーク
- Seleniumフレームワークの作成とExcelからのテストデータへのアクセス-Seleniumチュートリアル#21
- JUnitフレームワークの概要とSeleniumスクリプトでのその使用法– Seleniumチュートリアル#11
- Seleniumスクリプトを作成するためのTestNGフレームワークの使用方法-TestNGSeleniumチュートリアル#12
- SpockFrameworkを使用したデータ駆動型またはパラメーター化されたテスト
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- SeleniumWebドライバーでExcelシートからデータを読み書きする方法