selenium framework creation
前回のチュートリアルでは、 テスト自動化フレームワークの基本 、そのコンポーネントとタイプ。前のチュートリアルで説明したフレームワークは、テスト仲間が使用する最も人気のあるフレームワークのいくつかでした。
モジュールベースのフレームワーク、ライブラリアーキテクチャベースのフレームワーク、キーワード駆動型フレームワーク、データ駆動型フレームワーク、ハイブリッドフレームワークについて簡単に説明しました。その場所には他にもさまざまなフレームワークがあります。
採用することにご注意ください 残りのチュートリアルのデータ駆動型テスト自動化フレームワーク。
現在では このシリーズのチュートリアル 、私たちはあなたに知ってもらうでしょう サンプルフレームワーク、テストデータとそのExcel操作を保存するExcel 。同じように、私たちは前進し、フレームワークを成熟させるための新しい戦略とリソースを導入します。
では、次のことを学びましょう。
- サンプルプロジェクトを使用したフレームワーク作成戦略
- 外部データソースに保存されているテストデータにアクセスします
次に、さまざまなプロジェクトコンポーネントを分離するために作成するプロジェクト階層の説明から始めます。
サンプルプロジェクト用に作成されたプロジェクト階層については、以下の画像を参照してください。以下のJavaプロジェクトは、以前のチュートリアルでプロジェクトを作成した方法で、日食内で簡単に作成できます。
学習内容:
Seleniumプロジェクトのフォルダー構造–ウォークスルー
#1)src – このフォルダーには、すべてのテストスクリプト、ジェネリック、リーダー、およびユーティリティが含まれています。これらのリソースはすべて、単純なJavaクラスに他なりません。ソース(src)フォルダーの下に、フォルダーの階層を作成しました。
テスト –「テスト」フォルダーは、主に2つの要素で構成されています。テストスイートと、テスト対象のアプリケーションのさまざまなモジュールを表すフォルダーです。したがって、これらの各フォルダには、関連付けられているモジュールに固有のテストスクリプトが含まれています。 Testsuiteは、複数のテストスクリプトの論理的な組み合わせです。したがって、ユーザーは、後続の実行で実行したいテストスイート内の任意のテストスクリプトのエントリをマークできます。
アンドロイドのための良い無料のmp3ダウンローダー
b)ユーティリティ –「utilities」フォルダーは、ユーザー定義の例外を実装するためのさまざまなジェネリック、定数、リーダー、およびクラスで構成されています。ユーティリティの下にある各フォルダには、独自の意味があります。
- Excelリーダー– Excelシートからテストデータ(入力パラメーターと期待される結果)を読み取るために、汎用の共通クラスが作成されました
- EnvironmentConstants – このフォルダーは、パスやその他の環境の詳細を参照する静的変数を格納するJavaクラスの統合です。これらの詳細には、アプリケーションURL、データベースへのURL、データベースの資格情報、および使用されているサードパーティツールへのURLを指定できます。異なるアプリケーションのURLは、さまざまな環境(dev、prod、test、master、slaveなど)に設定できます。
- DataSetters – このフォルダーには、Excelからフェッチされたテストデータのゲッターとセッターを実装するクラスが組み込まれています。複数のテストデータセットをロードするには、ArrayListsを作成します。
- UserRoles – このフォルダーには、本能的なユーザーの役割ベースのアクセス基準を処理するクラスが含まれています。
- FunctionLibrary – フォルダは、複数のクラス間で共有および使用できる関数とメソッドを含むクラスで構成されています。多くの場合、アプリケーションへのログイン、環境のセットアップ、ロールに関連するアクティビティ、データ操作、結果の書き込み、他のメソッドの事前/事後条件を生成するメソッドなど、実際のテスト実行の前後に特定の手順を実行することになっています。 。これらのアクティビティは、テストスクリプトのすべてまたはほとんどに対して実行する傾向があるためです。したがって、各テストスクリプトで繰り返しコーディングするのではなく、そのようなアクティビティ用に個別のクラスを作成することを常にお勧めします。
- PreConditionalMethods
- PostConditionalMethods
多くの場合、アプリケーションへのログイン、環境のセットアップ、ユーザーロールに関連するアクティビティ、データ操作、結果の書き込み、他の事前条件/事後条件を生成するメソッドなど、実際のテスト実行の前後に特定の手順を実行することになっています。メソッド。これらのアクティビティはすべてまたはほとんどのテストスクリプトに対して実行する傾向があるため、各テストスクリプトで繰り返しコーディングするのではなく、このようなアクティビティ用に個別のクラスを作成することを常にお勧めします。
CommonMethods
事前条件と事後条件のように、複数のテストスクリプトで使用できるメソッドと関数が存在する場合があります。したがって、これらのメソッドは1つのクラスにグループ化されます。テストスクリプトは、共通クラスのオブジェクトを使用してこれらのメソッドにアクセスできます。
#2)Excelファイル– Excelファイルは、テストスクリプトを実行するためのデータソース/データプロバイダーと見なされます。これらのファイルは、テストデータをキーと値のペアに格納します。テストスクリプトごとに個別のExcelシートを作成することに注意してください。つまり、各テストスクリプトには独自のテストデータファイルがあります。テストスクリプトと対応するテストデータファイル/ Excelシートの名前は、トレーサビリティの観点から同じに保たれています。以下のサンプルテストデータ形式を確認してください。
テストデータ形式
各列はキーを表し、各行はテストデータ/値を表します。複数のデータセットで同じテストスクリプトを実行するには、複数の行を指定します。
テストデータ形式がユーザー定義のみであることをマークします。したがって、要件に基づいて、テストデータファイルをカスタマイズできます。
perlインタビューの質問と回答pdf
#3)ライブラリ– このフォルダーは、テスト環境を正常に構築し、テストスクリプトを実行するために必要なすべてのjarファイル、ライブラリ、ドライバーなどのリポジトリ/アーティファクトとして機能します。次の図を参照して、プロジェクト内で使用されるライブラリを確認してください。
#4)ログ– このフォルダーには、実行ごとにログ情報を格納する.txtファイルが含まれています。
#5)試験材料– このフォルダーには、アップロードする必要のある実際のテストデータが含まれています。このフォルダーは、ユーザーがファイル、ドキュメント、写真、レポートなどをアップロードする必要があるテストシナリオに出くわしたときに思い浮かびます。
#6)build.xml – xmlファイルは、ビルドプロセス全体を自動化するために「Antサーバー」によって使用されます。
#7)log4j.xml – このxmlファイルは、実行ログを生成するために「Log4j」という名前のJavaベースのユーティリティによって使用されます。
注意 :今後のチュートリアルでは、ログ、ユーザー定義の例外、およびAntについて詳しく調べます。したがって、概念間で混乱しても慌てないでください。
ここで、先に進むにつれて、Excelファイルにアクセスし、テストデータをテストスクリプトに入力する現象を理解しましょう。
プロセスをより簡単に理解するために、プロセスを次のステップに分解します。
テストデータの作成
ステップ1 : 最初の最も重要なステップは、テストスクリプトを実行するためのテストデータを作成することです。前述のテストデータ形式を考慮して、「TestScript1」という名前のExcelファイルを作成しましょう。要素の値を指定します。
ステップ2 : 次のステップは、「Java excel Library」(jxl)という名前の標準のJavaベースのAPI /ライブラリをダウンロードして、Excel操作用に作成済みの汎用メソッドにアクセスできるようにすることです。
ステップ3 : 「ExcelReader.java」という名前の汎用Excelリーダークラスを作成します。以下のコードをExcelReader.javaにコピーします。
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col ステップ4 : ジェネリッククラス「CommonMethods.java」を作成します。 ExcelReader.javaに実装されているメソッドを使用して、Excelシートからセルを読み取るクラス内に共通のメソッドを作成します。
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt ステップ5 : 「TestData.java」という名前の新しいJavaクラスを作成します。このクラスは、Excelデータのゲッターおよびセッターとして機能します。次のコードをコピーして、TestData.javaクラスに貼り付けます。
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
ステップ6 : 次のステップは、テストデータにアクセスしてデータを入力するために、テストスクリプト内に「TestData.java」および「CommonMethods.java」Javaクラスのインスタンスを作成することです。オブジェクトの初期化、Excelデータの読み取り、必要に応じて値を入力する方法については、以下のコードスニペットを参照してください。
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
したがって、testData.javaクラスのインスタンスをゲッターと組み合わせて使用すると、任意のテストデータ値をスクリプト内に入力できます。
結論:
チュートリアルは主に、フレームワークの作成や優れたテストデータへのアクセスなどの概念を中心に展開されました。サンプルプロジェクトを使用して、フレームワークの作成戦略を理解してもらいました。フレームワークのさまざまなコンポーネントと側面に簡単に光を当てました。
外部データソースに保存されているテストデータにアクセスするために、JavaベースのAPI –jxlを使用しました。また、Excelデータを読み取ってテストスクリプトに入力するためのサンプルコードも作成しました。
次のチュートリアル#22 : 次のチュートリアルでは、チュートリアルのベースを ジェネリックの概念とそのアクセシビリティメカニズム 。いくつかのサンプルジェネリックメソッドを作成し、テストスクリプト内でそれらにアクセスします。また、Testsuiteの概念とサンプルコード開発についても紹介します。
推奨読書
- JUnitフレームワークの概要とSeleniumスクリプトでのその使用法– Seleniumチュートリアル#11
- ApachePOIを使用したSeleniumWebDriverのデータ駆動型フレームワーク
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- 初心者向けの詳細なEclipseチュートリアル
- Seleniumスクリプトを作成するためのTestNGフレームワークの使用方法-TestNGSeleniumチュートリアル#12
- 効率的なSeleniumスクリプティングとトラブルシューティングシナリオ– Seleniumチュートリアル#27
- ログを使用したSeleniumスクリプトのデバッグ(Log4jチュートリアル)– Seleniumチュートリアル#26