2016-08-12 3 views
0

私はテストを使用してセレン(webdriver)のJavaでキーワード駆動型フレームワークを開発しています。 私たちは、すべての呼び出し を選択するドロップダウンなど、私はenterValues入力ボックスにすなわちテストのためのウェブサイト/ webアプリケーション上で実行するために必要なすべてのメソッド、クリックボタン/レベルを保存/保管関数ライブラリのクラスを持っていますTestSuite(.xlsx)を読み込むDriverscript/DriverEngineのこれらのメソッドは、すべてのテストケースが文書化されているファイル(POI APIの使用)を凌駕します。 TestSuiteは特定のフォーマット(具体的には )のファイルを処理します。最初のシートでは、すべてのテストケースが実行モード「Y」または「N」を使用して文書化されています。 次のシートから(2番目)次のシートから、各シートはテストケース名(テストスイートシート内)およびそのテストステップと同様に名前が付けられます。私たちの列名がどのようにセレンのdataProviderのアプローチを統合するWebDriverキーワードドライバフレームワーク

Teststepがある。すなわちTestsuite.xlsxファイル内 テストケースの形式は==説明==キーワード==オブジェクト== ProceedonfailFlag == TESTDATA

それぞれの値は以下の通りです...

01 == enterusername == enterValue == UserNameInputBox == Y == USERNAME(ユーザーはTestData.xlsxファイルから取得します)。それは私のアプリケーションでは偉大な...

を働いている

さて、ここまでは、アプリケーションのフォームに複数のユーザ依存在庫/オブジェクトを追加する機能があります。これらのオブジェクトは、ユーザーの要件に基づいてランダムです。 この機能は、TestNGを使用して@dataProviderクラスの実装で実現できます。 TestNG dataProviderクラスを別途作成することで、このようなユースケース(同じ操作を複数回)を実行することができます。 しかし、キーワードファイル(前述)に統合することで達成できません。キーワードファイルから他のメソッドのようにこの関数を呼び出す必要があります。私はこのアプローチでは全く空白です。KeyWordのフレームワークでdataProviderのアプローチを統合し、これをjavaのアクション/キーワード/メソッドと呼び、Excelファイルから呼び出す方法をお勧めします。

その他の拡張機能

私のフレームワークは純粋にキーワードベースです。私のテストスーツは、Excelファイルの最初のシート(実行モードで)とテストケースがシート-2から始まって文書化されています。 Driverscriptはpoi apiを使用してExcelファイルを読み込みます。 Driver Scriptは、excelのキーワード(textboxおよびclickButtonメソッドのenterValuesとして)をチェックし、キーワードjavaファイルから同じメソッドを呼び出します。ここでは問題はありません。私のテストケースは、逐次的な方法、すなわち、所望のURLを有するTC1-Lauchブラウザで実行されている。 TC2:名前、dob、性別などの情報を提供し、ユーザーデータに基づいて生成された結果を検証してQuoteオブジェクトを作成します。今、3番目のテストケースはTC3です:ユーザの複数の従属を登録フォームとして次のフォームに追加します。複数の扶養家族には、dob、genderなどの共通の特徴があります。これは手動で追加する必要があります。私はDataProvederの概念を使って第3のテストを自動化することができます。私のTestDataは、名前、頭文字、dob、性別、関係(妻、子供、両親など)などなどのExcelのヘッダーとして必須フィールドを持っています。私はtestNGデータプロバイダを2次元配列に適用したファイルを持っています私はスタンドアロンテストとして別々に実行できますが、このテストをキーワードフレームワークに統合してすべてのテストを1回のショットで実行する方法を知りたいと思います。これを解決するために私を助けてください。私はこの話題について非常に深い概念的知識を持っていません。わかりやすい形式でソリューションを提供してください。ありがとうございます、Vivek

私はあなたに前向きに感謝しています。あなたは、テストケースの名前を持つ BestRegards、最初のシートで のVivek

+0

まず、dataproviderビジネスがなければ、キーワードフレームワークを使用してセレニウムを駆動し、testngをアサーションの目的に使用しています。 dataproviderのものでは、testngはキーワードフレームワークをバイパスするセレンのドライバになります。あれは正しいですか? – Grasshopper

+0

はい...ありがとうございました。私がそれをはっきりと説明できなかった場合、ごめんなさい。私の枠組みは純粋にキーワードベースです。私のテストスーツは、Excelファイルの最初のシート(実行モードで)とテストケースがシート-2から始まって文書化されています。 Driverscriptはpoi apiを使用してExcelファイルを読み込みます。 Driver Scriptは、excelのキーワード(textboxおよびclickButtonメソッドのenterValuesとして)をチェックし、キーワードjavaファイルから同じメソッドを呼び出します。ここでは問題はありません。 –

答えて

0
  1. は2つの以上の列を追加します。複数のデータテストの場合に「Y」を持つもの。 2番目は、データを含むExcelファイルの名前です。つまり、現在データ提供者が使用しているExcelです。

  2. 例を使用して、ExcelワークブックのTC3シートに移動します。あなたが言及した元のヘッダーを再利用して追加します。

    01 == enterusername == enterValue == UserNameInputBox == Y == USERNAME 02 == enterdob == enterValue == DOBInputBox == Y == DOB 03 == enterCreator == enterValue == CreatorInputBox == Y ==ヴィシャル ... ...

変更

01==enterusername==enterValue==UserNameInputBox==Y==$$ColB$$ 
02==enterdob==enterValue==DOBInputBox==Y==$$ColC$$ 
03==enterCreator==enterValue==CreatorInputBox==Y==Vishal 
... 
... 
データは、Bとしてピックアップする必要がどこからというように、あなたの現在のdataProvider EXECLから列を言及するために、この

これで地図が完成しましたユーザー名、dobなどの値がTC3データの列にマップされています。ステップ3をチェックすると、すべてのTC3複数エントリにわたって一定の値を入力できます。通常のデータと列マッピングデータを区別するために$$$$記号を使用しました。

  1. これで、キーワードを実行するスクリプトを変更する必要があります。複数のテストケースが「Y」に設定されている場合は、次の列からデータの名前を取得する必要があります。コレクションのデータエクセルシートのデータを解析するか、またはapache poiが返すものを解析します。

  2. コレクションのサイズを使用して 'forループ'または 'while'を作成して制限します。ここでは、ループの繰り返しごとに、TC3を1回実行するためのテストデータがあります。これで、username、dobなどの入力データをテストデータの値にマップするだけで済みます。それらをキーワードメソッドに送信すると、すべてのデータに対して1つずつ実行する必要があります。

  3. 複数のデータを使用してテストケースをテストし、エラーが発生した場合にテストが正しく実行されることを常に確認してください。つまり、エラーが発生した場合、次のデータセットの正しい画面に戻るはずです。

オープンソースのキュウリツールを見て、あなたがやったことをすべて避けることができます。これは、Seleniumに加えて、使用したい他のDIコンテナと統合された、すぐに使えるソリューションです。

これはうまくいきます。

+0

ありがとうございました。たくさんありがとうございます –

+0

ようこそ...あなたのために働く場合は、この回答を受け入れることができます。 – Grasshopper

関連する問題