how use testng framework
最後のいくつかのチュートリアルでは、基本的で一般的に使用されるWebDriverコマンドに光を当てました。また、UI要素の検索戦略とテストスクリプトへのそれらの組み込みについても学びました。したがって、私たちは非常に 最初のWebDriver自動化テストスクリプト 。
このチュートリアルを進めるにあたり、TestNG、その機能、およびそのアプリケーションについてすべて説明します。
TestNGは高度なフレームワークです 開発者とテスターの両方のメリットを活用するように設計されています。すでにJUnitを使用している人にとって、TestNGはいくつかの高度な機能を備えていても違いはないように思われます。フレームワークの開始により、JUnitは莫大な利益を得ました Javaアプリケーション、Java開発者、Javaテスターの間で人気があり、コードの品質が大幅に向上しています。
も参照してください=> JUnitチュートリアルとSeleniumスクリプトでのその使用法
使いやすく簡単なフレームワークであるにもかかわらず、JUnitには独自の制限があり、これにより、JUnitを導入する必要が生じます。 TestNG 写真に。 TestNGは、「CedricBeust」という名の評価の高いプログラマーによって作成されました。 TestNGは、Apacheソフトウェアライセンスの下で配布され、すぐにダウンロードできるオープンソースフレームワークです。
TestNGをWebDriverに導入するという要件について話すと、効率的で効果的なテスト結果形式が提供され、利害関係者と共有して製品/アプリケーションの状態を垣間見ることができるため、WebDriverが生成できないという欠点がなくなります。テストレポート。 TestNGには、予期せず終了することなくプログラムを実行できる例外処理メカニズムが組み込まれています。
TestNGとJUnitはどちらも、TestNGがJUnitの拡張バージョンであり、現在のテスト時代でより広く使用されているユニットフレームワークの同じファミリに属しています。
学習内容:
- TestNGの特徴
- EclipseでのTestNGのインストール
- サンプルTestNGプロジェクトの作成
- TestNGクラスの作成
- TestNGスクリプトの実行
- HTMLレポート
- TestNGでの優先順位の設定
- コードウォークスルー
- TestNGアノテーション
- 結論
- 推奨読書
TestNGの特徴
- 注釈のサポート
- パラメータ化のサポート
- テストスイートの作成を必要としない高度な実行方法
- データプロバイダーを使用したデータ駆動型テストのサポート
- ユーザーがテストメソッドの実行優先度を設定できるようにします
- 複数のスレッドを実行するときに脅威セーフな環境をサポートします
- ビルドツール(Ant、Mavenなど)、統合開発環境(Eclipse)などのさまざまなツールやプラグインとの統合をすぐにサポートします。
- ReportNGを使用したレポート生成の効果的な手段でユーザーを容易にします
TestNGをJUnitよりも優れたものにするさまざまな利点があります。それらのいくつかは次のとおりです。
- 高度で簡単な注釈
- 実行パターンを設定できます
- テストスクリプトの同時実行
- テストケースの依存関係を設定できます
TestNGとJUnitの両方で、注釈の前に「@」記号が付いています。
それでは、インストールと実装の部分から始めましょう。
Seleniumテスト自動化のためのオンライングリッド
#1)LambdaTest
TestNGフレームワークは、LambdaTestなどのクラウドSeleniumグリッドで最適に使用されます。これにより、社内のSeleniumグリッドを維持する手間をかけずに、2000以上の実際のブラウザーとオペレーティングシステムで並列テストを実行できます。
コマンドログ、ネットワークログ、生のSeleniumログ、メタデータなどのさまざまなログを、デバッグ用のSeleniumテストスクリプトの完全なビデオ録画とともに取得できます。
LambdaTestは、継続的テストのために、Jenkins、Travis CI、CircleCIなどの複数のCI / CDツールとの統合も提供します。 LambdaTestを使用すると、多数のプロジェクト管理ツールと統合して、バグを簡単に記録することもできます。
=> LambdaTestWebサイトにアクセスEclipseでのTestNGのインストール
以下の手順に従って、EclipseにTestNGをダウンロードしてインストールします。
ステップ1: eclipseIDEを起動します->メニュー内の(ヘルプ)オプションをクリックします->ドロップダウン内の(EclipseMarketplace ..)オプションを選択します。
ステップ2: 検索テキストボックスにキーワード「TestNG」を入力し、以下に示すように「実行」ボタンをクリックします。
ステップ3: ユーザーが「実行」ボタンをクリックするとすぐに、検索文字列に一致する結果が表示されます。これで、ユーザーは(インストール)ボタンをクリックしてTestNGをインストールできます。
ステップ4: ユーザーが(インストール)ボタンをクリックするとすぐに、インストールを確認するためのウィンドウが表示されます。 「確認」ボタンをクリックしてください。
ステップ5: 次のステップでは、アプリケーションはライセンスに同意するように求め、「完了」ボタンをクリックします。
ステップ6: これでインストールが開始され、進行状況は次のように表示されます。
加えられた変更を反映するために、Eclipseを再起動することをお勧めします。
再起動時に、ユーザーはメニューバーの(ウィンドウ)オプションから(設定)に移動して、TestNGのインストールを確認できます。同じことについては、次の図を参照してください。
(画像をクリックすると拡大表示されます)
サンプルTestNGプロジェクトの作成
EclipseIDEでのTestNGプロジェクトの作成から始めましょう。
ステップ1: メニュー内の「ファイル」オプションをクリック->「新規」をクリック->「Javaプロジェクトの選択」。
ステップ2: プロジェクト名を「DemoTestNG」と入力し、「次へ」ボタンをクリックします。最後のステップとして、「完了」ボタンをクリックすると、Javaプロジェクトの準備が整います。
ステップ3: 次のステップは、新しく作成されたJavaプロジェクトにTestNGライブラリを構成することです。同様に、(ビルドパスの構成)の下の(ライブラリ)タブをクリックします。以下に示すように、「ライブラリの追加」をクリックします。
ステップ4: ユーザーには、構成するライブラリを選択するように促すダイアログボックスが表示されます。 TestNGを選択し、下の画像に示すように「次へ」ボタンをクリックします。最後に、「完了」ボタンをクリックします。
TestNGがJavaプロジェクトに追加され、プロジェクトを展開すると、必要なライブラリがパッケージエクスプローラーに表示されます。
前のチュートリアルで説明したように、ダウンロードしたすべてのSeleniumライブラリとjarをプロジェクトのビルドパスに追加します。
TestNGクラスの作成
これで、TestNGを使用したテストスクリプトの作成を開始するためのすべての基本的なセットアップが完了しました。 TestNGを使用してサンプルスクリプトを作成しましょう。
ステップ1: 「DemoTestNG」プロジェクトを展開し、「src」フォルダーに移動します。 「src」パッケージを右クリックして、「新規」->「その他」に移動します。
ステップ2: TestNGオプションを展開し、「TestNG」クラスオプションを選択して、「次へ」ボタンをクリックします。
ステップ3: 次のように必要な詳細を提供します。 Sourceフォルダー、パッケージ名、およびTestNGクラス名を指定して、(完了)ボタンをクリックします。下の図から明らかなように、ユーザーは、テストクラススキーマに反映されるさまざまなTestNG表記を確認することもできます。 TestNGアノテーションについては、このセッションの後半で説明します。
上記のTestNGクラスは、デフォルトのスキーマで作成されます。
TestNGテストスクリプトの基本的な基盤を作成したので、実際のテストコードを挿入しましょう。前のセッションで使用したのと同じコードを使用しています。
シナリオ:
- ブラウザを起動し、「gmail.com」を開きます。
- ページのタイトルを確認し、確認結果を印刷します。
- ユーザー名とパスワードを入力します。
- (サインイン)ボタンをクリックします。
- Webブラウザを閉じます。
コード:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
TestNGに関するコードの説明
1) @Test – @ Testは TestNGアノテーション 。このアノテーションにより、プログラムの実行は、@ Testとしてアノテーションが付けられたメソッドがテストメソッドであることを知ることができます。さまざまなTestNGアノテーションを使用できるようにするには、パッケージをインポートする必要があります。 インポート org.testng.annotations。*」。
2) TestNGを使用してテストスクリプトを作成する場合、main()メソッドは必要ありません。プログラムの実行は、注釈に基づいて行われます。
3) ステートメントでは、期待値と実際の値を比較しながら、Assertクラスを使用しました。アサーションクラスは、さまざまな検証を実行するために使用されます。さまざまなアサーションを使用できるようにするには、「 インポート org.testng.Assert」。
TestNGスクリプトの実行
TestNGテストスクリプトは、次の方法で実行できます。
=>エディター内のクラスまたはパッケージエクスプローラー内のJavaクラス内の任意の場所を右クリックし、(実行)オプションを選択して、(TestNGテスト)をクリックします。
TestNGの結果は2つのウィンドウに表示されます。
- コンソールウィンドウ
- TestNG結果ウィンドウ
結果ウィンドウについては、以下のスクリーンキャストを参照してください。
youtubeからwavへのコンバーター無料オンライン
(画像をクリックすると拡大表示されます)
HTMLレポート
TestNGには、テスト実行のためにユーザーが読み取り可能で理解しやすいHTMLレポートを生成する優れた機能が付属しています。これらのレポートはどのブラウザでも表示でき、Eclipseの組み込みブラウザサポートを使用して表示することもできます。
HTMLレポートを生成するには、次の手順に従います。
ステップ1: 新しく作成したTestNGクラスを実行します。 TestNGクラスを含むプロジェクトを右クリックし、(更新)オプションを選択して更新します。
ステップ2: 「test-output」という名前のフォルダーが、プロジェクト内の「src」フォルダーレベルで生成されます。 「test-output」フォルダーを展開し、Eclipseブラウザーで「emailable-report.html」ファイルを開きます。 HTMLファイルには、最近の実行の結果が表示されます。
ステップ3: HTMLレポートは、日食環境内で開く必要があります。同じことについては、以下の画像を参照してください。
ページを更新して、新しい実行の結果がある場合はそれを確認します。
TestNGでの優先順位の設定
コードスニペット
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
コードウォークスルー
テストスクリプトが複数のテストメソッドで構成されている場合、実行の優先度とシーケンスは、TestNGアノテーション「@Test」を使用し、「priority」パラメータの値を設定することで設定できます。
上記のコードスニペットでは、すべてのメソッドにヘルプ@Testアノテーションが付けられ、優先度が0、1、2に設定されています。したがって、テストメソッドが実行される実行順序は次のとおりです。
- 方法1
- 方法2
- 方法3
注釈のサポート
TestNGとJUnitで提供される多くの注釈があります。微妙な違いは、TestNGがJUnitにさらに高度な注釈を提供することです。
TestNGアノテーション
以下は、TestNGで最も有用で好ましい注釈のリストです。
注釈 | 説明 |
---|---|
@放課後 | アノテーションは、@ AfterClassアノテーションが付けられたメソッドは、同じテストクラス内の最後のテストメソッドを実行した後に実行する必要があることをシステムに通知します。 |
@テスト | アノテーションは、@ Testとしてアノテーションが付けられたメソッドがテストメソッドであることをシステムに通知します |
@BeforeSuite | アノテーションは、スイート全体でテストを実行する前に、@ BeforeSuiteアノテーションが付けられたメソッドを実行する必要があることをシステムに通知します。 |
@AfterSuite | アノテーションは、スイート全体でテストを実行した後、@ AfterSuiteとしてアノテーションが付けられたメソッドを実行する必要があることをシステムに通知します |
@BeforeTest | アノテーションは、同じテストクラス内のテストメソッドを実行する前に、@ BeforeTestとしてアノテーションが付けられたメソッドを実行する必要があることをシステムに通知します。 |
@AfterTest | アノテーションは、@ AfterTestとしてアノテーションが付けられたメソッドは、同じテストクラス内のテストメソッドを実行した後に実行する必要があることをシステムに通知します |
@BeforeClass | アノテーションは、同じテストクラス内で最初のテストメソッドを実行する前に、@ BeforeClassとしてアノテーションが付けられたメソッドを実行する必要があることをシステムに通知します。 |
@BeforeMethod | アノテーションは、同じテストクラス内のすべてのテストメソッドを実行する前に、@ BeforeMethodとしてアノテーションが付けられたメソッドを実行する必要があることをシステムに通知します。 |
@AfterMethod | アノテーションは、@ AfterMethodとしてアノテーションが付けられたメソッドは、同じテストクラス内のすべてのテストメソッドを実行した後に実行する必要があることをシステムに通知します |
@BeforeGroups | アノテーションは、@ BeforeGroupsとしてアノテーションが付けられたメソッドがグループを参加させる構成メソッドであり、グループの最初のテストメソッドを実行する前に実行する必要があることをシステムに通知します。 |
@AfterGroups | アノテーションは、@ AfterGroupsアノテーションが付けられたメソッドがグループを参加させる構成メソッドであり、グループの最後のテストメソッドの実行後に実行する必要があることをシステムに通知します。 |
注意 :前述のアノテーションの多くは、JUnit3およびJUnit4フレームワークでも実行できます。
結論
このチュートリアルを通じて、TestNGという名前のJavaベースのテストフレームワークを理解してもらうことを試みました。フレームワークのインストールからセッションを開始し、スクリプトの作成と高度なトピックに移りました。 TestNGによって提供されるすべてのアノテーションについて説明しました。アノテーションとassertステートメントを使用して、最初のTestNGテストスクリプトを実装して実行しました。
記事の概要:
- TestNGは、開発者とテスターの両方のメリットを活用するように設計された高度なフレームワークです。
- TestNGは、Apacheソフトウェアライセンスの下で配布され、すぐにダウンロードできるオープンソースフレームワークです。
- TestNGは、その高度な機能により、JUnitよりも優れていると見なされています。
- TestNGの特徴
- 注釈のサポート
- テストスイートの作成を必要としない高度な実行方法
- パラメータ化のサポート
- データプロバイダーを使用したデータ駆動型テストのサポート
- テストメソッドの実行優先度の設定
- 複数のスレッドを実行するときに脅威セーフな環境をサポートします
- ビルドツール(Ant、Mavenなど)、統合開発環境(Eclipse)などのさまざまなツールやプラグインとの統合をすぐにサポートします。
- ReportNGを使用したレポート生成の効果的な手段でユーザーを容易にします
- JUnitに対するTestNGの利点
- 高度で簡単な注釈を追加
- 実行パターンを設定できます
- テストスクリプトの同時実行
- テストケースの依存関係を設定できます
- TestNGは無料で入手でき、EclipseMarketを使用してEclipseIDEに簡単にインストールできます。
- インストール時に、TestNGはEclipse環境内のライブラリとして利用可能になります。
- 新しいJavaプロジェクトを作成し、TestNGライブラリを使用してビルドパスを構成します。
- 作成したTestNGプロジェクトを展開して新しいTestNGクラスを作成し、その「src」フォルダーに移動します。 「src」パッケージを右クリックして、「新規」->「その他」に移動します。 TestNGクラスオプションを選択します。
- @Testは、TestNGによって提供されるアノテーションの1つです。このアノテーションにより、プログラムの実行は、@ Testとしてアノテーションが付けられたメソッドがテストメソッドであることを知ることができます。さまざまなTestNGアノテーションを使用できるようにするには、パッケージをインポートする必要があります。 インポート org.testng.annotations。*」。
- TestNGを使用してテストスクリプトを作成する場合、main()メソッドは必要ありません。
- 期待値と実際の値を比較しながら、Assertクラスを使用します。アサーションクラスは、さまざまな検証を実行するために使用されます。さまざまなアサーションを使用できるようにするには、「 インポート org.testng.Assert」。
- テストスクリプトが複数のテストメソッドで構成されている場合、実行の優先度と順序は、TestNGアノテーション「@Test」を使用し、「priority」パラメータの値を設定することで設定できます。
- TestNGには、人間が読める形式のテスト実行レポートを自動的に生成する機能があります。これらのレポートはどのブラウザでも表示でき、Eclipseの組み込みブラウザサポートを使用して表示することもできます。
次のチュートリアル#13 :Seleniumシリーズの今後のチュートリアルを進めるにあたり、Webページで利用可能なさまざまなタイプのWeb要素の処理に集中します。したがって、 次のチュートリアルでは、「ドロップダウン」に焦点を当て、それらの処理戦略を実行します。 また、WebDriverのSelectクラスと、ドロップダウンで値を選択するためのそのメソッドについても説明します。
読者へのコメント :Seleniumシリーズの次のチュートリアルが処理モードにある間、読者はTestNGフレームワークを使用して独自の基本的なWebDriverスクリプトの作成を開始できます。
より高度なスクリプトと概念については、TestNGクラスにできるだけ多くの注釈とアサーションを含め、TestNG環境を使用してそれらを実行してください。また、TestNGによって生成されたHTMLレポートを分析します。
推奨読書
- Seleniumスクリプトを作成するためにFirebugを使用する方法-Seleniumチュートリアル#4
- JUnitフレームワークの概要とSeleniumスクリプトでのその使用法– Seleniumチュートリアル#11
- SeleniumでTestNGアノテーションを使用する方法を学ぶ(例を含む)
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Seleniumスクリプトを構築するためにChromeおよびIEブラウザーで要素を見つける方法– Seleniumチュートリアル#7
- Seleniumフレームワークの作成とExcelからのテストデータへのアクセス-Seleniumチュートリアル#21
- ジェネリックとテストスイートの作成– Seleniumチュートリアル#22
- 初心者向けの詳細なEclipseチュートリアル