20 most popular testng interview questions
よくある質問の多いTestNGインタビューの質問と回答と、準備に役立つ例:
この記事では、TestNGで最も人気があり、よくある面接の質問と回答のリストについて説明します。
概念を理解しやすいように、関係する場所に簡単な例を追加します。これらの質問は、TestNGインタビューをうまくクラックするのに役立つと確信しています。
よくあるTestNGインタビューの質問
Q#1)TestNGとは何ですか?
回答: TestNGは、開発者がJavaプログラムで単体テストを実行するために作成したフレームワークです。
TestNGは、SeleniumWebdriverで作成された自動テストスクリプトを効率的に実行するためにソフトウェアテスターによっても使用されます。その完全な形式は「新世代のテスト」フレームワークです。
.binファイルをどのように開きますか
これは、Javaプログラムをユニットテストするためのもう1つのフレームワークである「JUnit」に触発されています。 JUnitのすべての機能に加えて、TestNGにはより強力な新機能があります。
Q#2)EclipseにTestNGをどのようにインストールしますか?
回答:
EclipseにTestNGをインストールするには、以下の手順に従ってください。
- Eclipseに移動->「ヘルプ」をクリック->「新しいソフトウェアのインストール」をクリックします。
- 「追加」ボタンをクリックし、「次へ」テキストボックスに名前(できればTestNG)を入力します。 「場所」テキストボックスに入力し、「OK」アクションボタンをクリックします。
- TestNGチェックボックスをチェックし、「次へ」アクションボタンをクリックします。インストールが開始され、インストール後にEclipseが再起動します。
- Eclipseでプロジェクトを右クリック->ビルドパスの選択->ビルドパスの構成。
- ライブラリタブを選択します->ライブラリの追加ボタンをクリックします-> TestNGを選択します->次へをクリックします->完了して適用をクリックして閉じます。
Q#3)TestNGスクリプトを実行するにはどうすればよいですか?
回答:
TestNGスクリプトを実行するには:
Eclipseでクラスを右クリックし、(実行)をクリックして、(TestNGテスト)を選択します。
または
Eclipseのツールバーの(実行)ボタンを直接クリックします。
Q#4)TestNGで使用されるアノテーションは何ですか?
回答: TestNGには、注釈の3つのセクションがあります。
(i)前提条件の注釈: これらテストの前に実行されるTestNGアノテーションです。
@ BeforeSuite、@ BeforeClass、@ BeforeTest、@ BeforeMethodは前提条件のアノテーションです。
(ii)テスト注釈: これは、テストケースの前(テストケースを実行するために記述されたメソッドの前)にのみ言及されているアノテーションです。
@Testはテストアノテーションです
(iii)事後条件アノテーション: これらは、テストケースの後に実行されるアノテーションです。 (テストケースを実行するためのメソッドが記述された後)
@ AfterSuite、@ AfterClass、@ AfterTest、@ AfterMethodは事後条件アノテーションです
Q#5)TestNGでのアノテーションの実行順序はどのようになっていますか?
回答: アノテーションの実行順序は次のとおりです。
@BeforeSuite @BeforeTest @BeforeClass @BeforeMethod @Test @AfterMethod @AfterClass @Aftertest @AfterSuite
Q#6)TestNGの利点は何ですか?
回答: TestNGの利点は次のとおりです。
- これはオープンソースフレームワークであるため、構成が簡単です。
- TestNGを使用すると、テストケースを体系的に作成できます。
- たくさんの注釈が付けられ、テストケースの作成が簡単になります。
- TestNGを使用すると、テストの優先順位と実行順序を定義できます。
- TestNGを使用してグループ化することができます。
- HTMLレポートを生成します(Selenium Webdriverはテストレポートを単独で生成することはできません。SWがこれを達成するのに役立ちます)。
- TestNGを使用してデータのパラメーター化が可能です。
- JUnitのすべての機能に加えて、TestNGにはその機能があり、それによってさらに強力になります。
Q#7)TestNGで優先順位を設定するにはどうすればよいですか?
回答: クラスには常に複数のテストまたはメソッドがあります。これらのテストまたはメソッドに優先順位を付けない場合、メソッドはアルファベット順に選択され、実行中に実行されます。
必要な順序でテストを実行する場合は、@ Testアノテーションとともに優先度を設定する必要があります。
これは次のように実行できます。
@Test(priority = 1)、@ Test(priority = 2)
次の例を考えてみましょう。
@Test (priority=2) public void getText() { driver.findElement(By.id(“id”)).getText(); } @Test(priority=1) public void clickelement() { driver.findElement(By.id(“id”)).click(); }
上記の例では、優先度が1に設定されているため、clickelement()が最初に実行されます。
また、getText()は、優先度が2に設定されているため、clickelement()の後に実行されます。
Q#8)TestNGを使用してプロジェクトレポートを共有するにはどうすればよいですか?
回答: これを行うには、いくつかの方法があります。
(私) TestNGクラスの実行後、コンソールの横に生成される「実行中のクラスの結果」というタブが1つあります。
これをコピーして共有できます。
(ii) TestNGクラスの実行後、
- プロジェクト名を右クリックして更新します
- 「Test-output」フォルダをクリックします
- 「index.html」ファイルを右クリックして、プロパティを選択します
- 「場所」の横にあるリンクをコピーします
このリンクを共有して、TestNGによって生成された基本的なHTMLテストレポートを確認できます。
これは、TestNGを使用してクラスを実行した後、マシン上で自動的に生成されるファイルです。
Q#9)TestNGでグループ化をどのように定義しますか?
回答: 以下に示すように、groups属性を使用してTestNGでグループ化を定義できます。
@Test(groups =” title”)
Q#10)TestNGへの依存関係とは何ですか?
回答: 多くの方法が依存しているいくつかの方法があります。
例えば、 アプリケーションをテストする必要があり、アプリケーションのログインページが機能していない場合、残りのシナリオをテストすることはできません。
したがって、LoginTestは、多くのテストが依存しているメソッドです。
したがって、次のように記述します。
@Test(dependsOnMethods=”LoginTest”) Public void homePageLaunched() { }
上記のコードは、homePageLaunched()メソッドがLoginTest()メソッドに完全に依存していることを示しています。
LoginTest()が渡された場合にのみ、homePageLaunched()メソッドが実行されます
Q#11)TestNGのInvocationCountとは何ですか?
回答: テストケース「n」を何度も実行する場合は、次の例に示すように、invocationCount属性を使用できます。
例:
@Test(invocationCount=8) Public void print() { }
上記の例では、print()メソッドは8回実行されます。
Q#12)TestNGのタイムアウトとは何ですか?
回答: スクリプト内のメソッドの実行に時間がかかる場合は、TestNGの「タイムアウト」を使用してそのメソッドを終了できます。
@Test(timeout = 5000)
この場合、メソッドは5000ミリ秒(5秒)で終了し、テストケースは「失敗」としてマークされます。
Q#13)TestNGで例外を処理する方法は?
回答: いくつかの例外が予想されるメソッドがある場合は、テストケースが失敗しないように、@ Testアノテーションで例外について言及できます。
例: メソッドに「numberFormatException」例外があると予想される場合、try-catchブロックが指定されていないと、この例外のためにテストケースは失敗します。
ただし、次のように「expectedException」属性を使用して、TestNGでこれを行うことができます。
@Test(expectedException = numberFormatException.class)
その後、テストケースは失敗することなく実行されます。
Q#14)一般的なTestNGアサーションは何ですか?
回答: 一般的なTestNGアサーションは次のとおりです。
(私) Assert.assetEquals(String actual、String expected);
- 2つの文字列を受け入れます。
- 両方の文字列が等しい場合、テストケースは正常に実行されます。それ以外の場合、テストケースは失敗します。
(ii) Assert.assertEquals(実際の文字列、期待される文字列、文字列メッセージ)
- 2つの文字列を受け入れます。
- 両方の文字列が等しい場合、テストケースは正常に実行されます。それ以外の場合、テストケースは失敗します。
- テストケースが失敗した場合、メッセージが出力されます。
(iii) Assert.assertEquals(実際のブール値、期待されるブール値)
- 2つのブール値を受け入れます。
- 両方のブール値が等しい場合、テストケースは正常に実行されます。それ以外の場合、テストケースは失敗します。
(iv) Assert.assertTrue()
- ブール値を受け入れます。
- 条件がTrueの場合、アサーションは成功します。それ以外の場合、アサーションエラーが表示されます。
(v) Assert.assertFalse()
- ブール値を受け入れます。
- 条件がFalseの場合、アサーションは成功します。それ以外の場合、アサーションエラーが表示されます。
(私達) Assert.assertTrue(、message)
- ブール値を受け入れます。
- 条件がTrueの場合、アサーションは成功します。それ以外の場合、前述のメッセージとともにアサーションエラーが表示されます。
(来ますか) Assert.assertFalse(、message)
- ブール値を受け入れます。
- 条件がFalseの場合、アサーションは成功します。そうでない場合、前述のメッセージとともにアサーションエラーが表示されます。
Q#15)TestNGでテストを無効にする方法は?
回答:
TestNGでテストを無効にするには、次のように「enabled」属性を使用する必要があります。
@Test(enabled =” false”)
Q#16)TestNGのアサートのタイプは何ですか?
回答: 結果(合格/不合格)を検証するには、アサーションを使用する必要があります。
TestNGには2つのタイプのアサートがあります。
(i)ハードアサート:
ハードアサートは、TestNGクラスで検証を行うために使用される通常のアサートです。
次のように、ハードアサートにはAssertクラスを使用する必要があります。
Assert.assertEquals(実際の値、期待値);
ハードアサートが失敗した場合、assertステートメントの後にコードは実行されません。
(ii)ソフトアサート:
assertステートメントが失敗した後もテストの実行を継続したい場合は、softassertを使用する必要があります。
ソフトアサーションを作成するには、 次のように「softAssert」クラスのオブジェクトを作成する必要があります。
softAssert sassert = new softAssert();
sassert.assertAll();
したがって、テストケースが失敗しても、ソフトアサートを使用しても実行は終了しません。
Q#17)testng.xmlファイルを介してテストケースのパラメーターを渡す方法は?
オンラインで最高のyoutubeからmp3へのコンバーター
回答: ログインメソッドが定義されているクラスがある場合は、testing.xmlファイルからこのログインメソッドにログインパラメータを渡すことができます。
次のように「@parameters」アノテーションを使用する必要があります。
@Parameters({'user_name','password'}) @Test public void loginapp() { driverget(“appname”); driver.findElement(By.id(“login”)).sendkeys(user_name); driver.findElement(By.id(“password”)).sendkeys(password); }
次に、testng.xmlファイルに移動し、次のようにパラメーターを入力します。
“suitename” > ”testname” > ”user_name” value= ”user1” /> ”password” value = ”pass1” /> ”passingparameters” />
Q#18)testng.xmlファイルを作成する必要は何ですか?
回答: Selenium Webdriverを使用してプロジェクトをテストすると、プロジェクトには多くのクラスがあります。これらのクラスを1つずつ選択して、自動化することはできません。したがって、すべてのクラスが単一のテストスイートで実行されるようにスイートを作成する必要があります。
これは、testing.xmlファイルを作成することで実現できます。
Q#19)TestNGでXMLファイルを作成するにはどうすればよいですか?
回答: srcフォルダーに移動->ファイルをクリック->ファイルの名前を入力(主にtesting.xmlと書かれています)
次に、(完了)をクリックします。
空のXMLファイルがあります。ここでは、以下に示すように、パッケージ名とともに、実行するプロジェクト名とクラスについて言及する必要があります。
'Testing project' > 'testing feature 1' > 'packagename.name of class1' /> 'packagename.name of class1' /> 'packagename.name of class1' /> 'packagename.name of class1' />
このファイルを実行するには、パッケージエクスプローラーでtestng.xmlに移動し、右クリックして-> TestNGスイートとして実行する必要があります。
Q#20)TestNGでSKIP例外をスローする方法は?
回答: テストを使用してテストをスキップする場合は、TestNGでSKIP例外を使用する必要があります。
それは次のように書かれています:
public void skipExc() { System.out.println('SKIP me'); throw new skipException(“Skipping skipExc”); } }
面接にご期待ください!!