assertions selenium using junit
このアサーションに関するSeleniumチュートリアルでは、Seleniumのアサーションとは何か、およびJunitフレームワークとTestNGフレームワークを使用したさまざまなタイプのアサーションとアサーションメソッドについて説明します。
アサーションはテストケースを検証するために使用され、テストケースが成功したか失敗したかを理解するのに役立ちます。アプリケーションの実際の結果が期待される結果の結果と一致する場合、アサーションは満たされていると見なされます。
Seleniumを使用してWebアプリケーションを自動化する際、テストを検証して、期待どおりに機能しているかどうかを確認する必要があります。(つまり、テストケースの結果が合格/不合格の場合)。
=> ここでSeleniumビギナーズガイドをご覧ください。
テストケースは、すべてのアサーションが満たされた場合にのみ合格と見なされます。 Seleniumでのアサーションは、JunitおよびTestNGフレームワークの事前定義されたメソッドで処理できます。これについては、この記事で詳しく説明します。
学習内容:
Seleniumでのアサーション
アサーションは、テストケースでさまざまな種類の検証を実行するために使用されます。これにより、テストケースが成功したか失敗したかを判断できます。 Weテストが例外なく実行された場合、テストは成功したと見なします。
アサーションに関するビデオチュートリアル
Seleniumのアサーションの種類
Seleniumには2つのタイプのアサーションがあり、分類は、条件が合格または不合格になった後のアサーションの動作によって異なります。
ここでは、2つのタイプのアサーションについて説明します。 セレン :
- ハードアサーション
- ソフトアサーション
サンプルはこちら テストケース アサーションをテストするため。
#1)ハードアサーション(または単にアサーション)
ハードアサーションは、アサーション条件が満たされるまで実行を続行しません。
ハードアサーションは通常、アサーション条件が満たされない場合は常にアサーションエラーをスローします。ハードアサーション条件が失敗すると、テストケースはすぐに失敗としてマークされます。
この種のアサーションを使用するシナリオは、正しくログインしたかどうかを確認し、ログインに成功しなかった場合はテストに失敗する場合です。前提条件(ログイン)自体は失敗します。
ここに示されている別の例を見てみましょう:
Webページのタイトルを主張するテストケースを考えてみましょう。
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir”); @BeforeTest public void SetDriver(){ //Mention the location of ChromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
この例では、「ActualTitle」変数は自動化からのタイトルテキストを保持します。 「expectedTitle」は、期待される文字列データを保持します。 Assert.assertEquals()は、両方のテキストが等しいかどうかを確認します。上記のテストケースは合格し、実際のテキストと期待されるテキストが同じであるため、次の実行行に進みます。
コンソール :
アサートが渡されました。
合格:VerifyTitle
同じテストケースが失敗すると、例外がスローされ、そのインスタンスで実行が停止します。
それでは、期待されるタイトルを間違ったタイトルに変更しましょう。
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ //Mention the location of chromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Welcome to Amazon”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
コンソール:
java.lang.AssertionError:期待(アマゾンへようこそ)だが見つかった(Amazon.com:電子機器、アパレル、コンピューター、書籍、DVDなどのオンラインショッピング)
コンソールから、Assertステートメントでエラーが発生し、例外がスローされたため、printステートメントがスキップされた(System.out.println)ことがわかります。
#2)ソフトアサーション
ソフトアサーションは、アサーション条件が満たされていない場合でも、テスト実行の次のステップに進みます。
ソフトアサーションは、要求されない限り、アサーションが失敗したときに自動的に例外をスローしないタイプのアサーションです。これは、フォームで複数の検証を行う場合に役立ちます。そのうちのいくつかの検証だけが、テストケースのステータスの決定に直接影響します。
ここでは、SoftAssertというクラスを使用し、assertAll()メソッドを呼び出して、実行中にキャッチされたすべての例外をスローします。 softAssertを使用すると、アサーションが実行され、例外が見つかった場合はすぐにはスローされません。キャッチされたすべての例外をスローするためにメソッドassertAll()を呼び出すまで続行されます。
テストケースごとに「SoftAssert」クラスの異なるオブジェクトを使用することをお勧めします。
ページのタイトルを主張するテストケースを検討してください
以下の例では、「SoftAssert」クラスの2つのオブジェクトが作成され、2つの異なるテストケースで使用されます。
public class LearnAssertionsSoft { WebDriver driver; //Object of Class SoftAssert is created to use its methods SoftAssert softassert = new SoftAssert(); SoftAssert softassert2 = new SoftAssert(); //current project workspace String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created - Chrome browser is opened driver.manage().window().maximize(); } //Soft Assertion example - with a failure test case example @Test public void verifyTitle(){ driver.get('https://amazon.in'); String ActualTitle = driver.getTitle(); System.out.println('Actual Title :'+ActualTitle); String ExpectedTitle = 'cameras, books, watches, apparel, shoes and e-Gift Cards. Free Shipping & Cash on Delivery Available.'; //Soft assert applied to verify title softassert.assertEquals(ActualTitle, ExpectedTitle); //If failed, this line gets printed and execution is not halted System.out.println('Assertion 1 is executed”); softassert.assertAll(); } //Soft Assertion example - with a positive flow test case example @Test public void verifyElement(){ WebElement AmazonIcon = driver.findElement(By.Xpath(“//div(contains(@id,’amazon_icon’))); softassert2.assertEquals (true, AmazonIcon.isDisplayed()); softassert2.assertAll(); System.out.println('Icon is displayed'); System.out.println('Assertion 2 is executed”); } @AfterTest public void closedriver(){ driver.close(); //Checks for failures if any and throws them at the end of execution } }
コンソール:
実際のタイトル:Amazon.com:電子機器、アパレル、コンピューター、書籍、DVDなどのオンラインショッピング
アサーション1が実行されます
アイコンが表示されます
アサーション2が実行されます
java.lang.AssertionError:次のアサートが失敗しました:
(Amazonへようこそ)を期待していましたが、(Amazon.com:電子機器、アパレル、コンピューター、書籍、DVDなどのオンラインショッピング)が見つかりました
コンソールから、最初のテストケース(verifyTitle)でアサーションが失敗した場合でも、実行は次の行に続き、「アサーション1が実行されました」というステートメントが出力され、softAssertが呼び出された後であることがわかります。例外がスローされました。
ハードアサーションとソフトアサーションをいつ使用するか?
アサーションが失敗した後でも実行されるテストケースのすべてのステップを実行する必要があり、アサーション例外も報告する必要がある場合は、ソフトアサーションの使用を選択します。テストスクリプトでソフトアサーションを使用することは、テストの実行を処理するための優れた方法であり、効果的な方法です。
アサーションが渡された後にのみテストケースの実行を続行する場合( 例えば、 有効なログインを確認してから他の手順を実行するには)、ハードアサーションを使用します。
JUnitアサートメソッド
さまざまなタイプのJUnitAssertメソッドについて以下で詳しく説明します。
#1)assertEquals
assertequalsメソッドは、期待される結果を実際の結果と比較します。期待される結果が実際の結果と一致しない場合はAssertionErrorをスローし、assertequalsメソッドでプログラムの実行を終了します。
構文:
public static void assertEquals(String expected, String actual)
例:
期待される文字列=“ https://www.google.com”;
文字列actualURL =“ https://www.google.com”;
Assert.assertEquals(expected、actualURL);
C ++深さ優先探索
#2)assertTrue
asserttrueメソッドは、指定された条件が真であることをアサートします。
2つのパラメータを取ります。1つはメッセージで、もう1つはアサーションを適用する必要がある条件です。 asserttrueメソッドに渡された条件が満たされない場合、AssertionErrorをスローします。
構文:
public static void assertTrue(java.lang.String message, boolean condition)
message –アサーションエラーの場合に表示されるメッセージ。
condition –アサーションを適用する必要がある条件。
例:
Assert.assertTrue( '真のテストメッセージをアサート'、true);
#3)assertFalse
assert falseメソッドは、指定された条件がfalseであることをアサートします。
これは2つのパラメータを取ります。つまり、1つはメッセージであり、もう1つはアサーションを適用する必要がある条件です。 assertfalseメソッドに渡された条件が満たされない場合、AssertionErrorをスローします。
構文:
public static void assertFalse(java.lang.String message, boolean condition)
message –アサーションエラーの場合に表示されるメッセージ。
condition –アサーションを適用する必要がある条件。
例:
Assert.assertFalse(“ Assert false test message” false);
#4)assertNull
assert nullは、指定されたオブジェクトにnull値が含まれているかどうかを確認するために使用されます。パラメータとしてオブジェクトを受け取り、指定されたオブジェクトがnull値を保持していない場合は、AssertionErrorをスローします。
構文:
public static void assertNull(Object object)
例:
DemoClass demo = new DemoClass();
Assert.assertNull(demo);
#5)assertNotNull
assert not nullは、指定されたオブジェクトがnull値を保持していないことを確認するために使用されます。パラメータとしてオブジェクトを受け取り、提供されたオブジェクトにnull値が含まれていない場合は、AssertionErrorをスローします。
構文:
public static void assertNotNull(Object object)
例:
DemoClass demo = new DemoClass();
Assert.assertNotNull(demo);
#6)assertSame
同じメソッドをアサートすると、パラメータとして提供された2つのオブジェクトが同じオブジェクトを参照しているかどうかがチェックされます。提供されたオブジェクトが、提供されたメッセージと同じオブジェクトを参照していない場合、AssertionErrorをスローします。
Assert sameはオブジェクトの参照のみを比較し、実際の値は比較しないことに注意してください。
構文:
public static void assertSame(String message, Object expected,Object actual)
例:
DemoClass1 demo1 = new DemoClass1();
DemoClass2 demo2 = new DemoClass2();
Assert.assertSame( '2つのオブジェクトが等しい'、demo1、demo2);
#7)assertNotSame
同じではないとアサートすると、2つのオブジェクトが等しくないことが確認されます。 2つのオブジェクトが同じオブジェクトを参照する場合、AssertionErrorがスローされます。
同じメソッドではないassertは、オブジェクトの参照を比較し、オブジェクトに存在する値を比較しないことに注意してください。
構文:
public static void assertNotSame(String message, Object expected, Object actual)
例:
DemoClass1 demo1 = new DemoClass1();
DemoClass2 demo2 = new DemoClass2();
Assert.assertNotSame( '2つのオブジェクトが等しくない'、demo1、demo2);
#8)assertArrayEquals
assert equalsは、2つのオブジェクト配列が等しいことを確認します。両方の配列がnull値を保持している場合、それらは等しいと見なされます。このメソッドは、両方のオブジェクト配列が等しいと見なされない場合に提供されるメッセージとともにAssertionErrorをスローします。
構文:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
message –アサーションエラーの場合に表示されるメッセージ。
期待–オブジェクトの配列。
実際–オブジェクトの配列。
例:
String () expected = {“ Mango”、” Apple”、” Banana”}
String () actual = {“ Mango”、” Apple”、” Banana”}
Assert.assertArrayEquals(expected、actual);
TestNGアサートメソッド
TestNGアサーションメソッドは、上記で説明したJUnitアサーションメソッドと同じになります。メジャーな JunitとTestNGの違い アサーションメソッドは、アサーションの処理の邪魔になります。
TestNGは、依存クラス、グループテスト、パラメーター化されたテストなど、より高度なアサーション処理技術を提供します。
TestNGアサートメソッドに関するビデオチュートリアル
パートI
パートII
パートIII
#1)assertEquals
このメソッドは、2つのデータ値が等しいかどうかをアサートするために使用されます。文字列、ブール値、整数などのさまざまなデータ型の値を比較できます。など。期待値と実際の値が同じである場合は常に、アサーションは例外なく通過します。そうでない場合は、AssertionErrorがスローされます。
使用法 :この種のアサーションは、Webページに表示されるデータが期待どおりまたは指定された要件に従っている場合を検証するために使用されます。
構文:
Assert.assertEquals(actual,expected)
パラメーター:
電流 –自動化に期待する実際の価値。
期待される –期待値。
例: これを確認するために、Amazonホームページに「Amazon.com:電子機器、アパレル、コンピューター、本、DVDなどのオンラインショッピング
@Test public void verifyTitle() { WebDriver driver = new FirefoxDriver(); driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); }
コンソール :
アサートが渡されました。
合格:VerifyTitle
上記の例では、2つの文字列の値が等しいことが確認されています。同様に、整数、ブール値などの他のデータ型の同等性を検証できます。
#2)assertNotEquals
assertNotEqualsは、2つのデータ値が等しくないかどうかを確認するために使用されます。これは、assertEqualsアサーションの機能の正反対です。期待値と実際の値が一致する場合は常に、アサーションは例外で失敗し、テストケースを「失敗」としてマークします。
使用法 :これは、各データがWebページ上で一意であることを確認する場合に使用されます。 例えば 、 2つの電話番号が同じではない電話帳。
Javaのメソッドに配列を渡す方法
構文:
Assert.assertNotEquals(actual,expected)
パラメーター:
電流 –自動化に期待する実際の価値。
期待される –期待値。
例: 2つの異なるエリアのピンコードが一意である/同じではないことを確認します。
@Test // test case to verify AssertNotEquals public void verifyAssertNotEquals{ WebDriver driver = new FirefoxDriver(); driver.get('http://chennaiiq.com/chennai/pincode-by-name.php'); WebElement Adambakkam = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(5)/td(3)')); WebElement Aminijikarai = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(15)/td(3)')); String Pincode1 = Adambakkam.getText(); String Pincode2 = Aminijikarai.getText(); System.out.println('Two Unique pincodes are : ' +Pincode1 +' && '+Pincode2); Assert.assertNotEquals(Pincode1, Pincode2); System.out.println(“Assert passed”); }
コンソール :
2つの固有のピンコードは次のとおりです:600012 && 600001
アサートが渡されました。
合格:verifyAssertNotEqual
#3)assertTrue
assertTrueは、指定されたブール条件が真であるかどうかを確認するために使用されます。このアサーションは、指定された条件が合格した場合にtrueを返し、合格しなかった場合は、アサーションエラーがスローされます。
構文:
Assert.assertTrue(BooleanCondition);
パラメーター :
BooleanCondition –戻り値の型がTrueであることを確認するための条件。
使用法 :
例: サインインボタンがAmazon.inのホームページにあるかどうかを確認します(ボタンの表示をアサートします)。
Assert.assertTrue(SignIn.isDisplayed());
ここでは、ブール条件– SignIn.IsDisplayed() TRUEを返します。
例: ボタンがWebページに存在するかどうかを確認します。
@Test // Test cases for AssertTrue public void verifyAssertTrue(){ WebDriver driver = new FirefoxDriver(); driver.get('https://www.amazon.in');// Open browser and pass URL in address bar WebElement Navigation = driver.findElement(By.xpath('//*(@id='nav-link-yourAccount')')); WebElement SignInButton = driver.findElement(By.xpath('//span(text()='Sign in')')); Actions move = new Actions(driver); move.moveToElement(Navigation).build().perform(); Boolean checkButtonPresence = SignInButton.isDisplayed(); Assert.assertTrue(checkButtonPresence); System.out.println('Button is displayed'); }
コンソール :
ボタンが表示されます
合格:verifyAssertTrue
#4)assertFalse
assertFalseは、指定されたブール条件がfalseであるかどうかを確認するために使用されます。つまり、指定されたブール条件の戻り値の型はFalseである必要があります。このアサーションは、指定された条件の戻り値の型がFALSEの場合に合格し、そうでない場合はアサーションエラーがスローされます。
構文:
Assert.assertFlase(BooleanCondition);
パラメーター :
BooleanCondition –戻り値の型がFalseであることを確認する条件。
使用法 :それを使用できるシナリオは、特定のアクションの後に要素がWebページに存在しないかどうかを確認することです。
例1: ログイン後、サインインボタンは表示されません。
Assert.assertFalse(SignIn.isDisplayed());
これは、ブール条件– SignIn.IsDisplayed() FALSEを返します。
例2:
特定のアクションの後にdivが消えるかどうかを確認します。したがって、ここでは、divが表示されていないことを確認します。つまり、表示されているdivの誤った条件をアサートします。
@Test // Test case for AssertFalse public void verifyAssertFalse() throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); WebElement CaptchaDiv = driver.findElement(By.xpath('//div(contains(@id,'ImgContainer'))')); WebElement CheckBox = driver.findElement(By.xpath('//*(@id='otpId')')); CheckBox.click(); Assert.assertFalse(CaptchaDiv.isDisplayed()); System.out.println('Captcha div dimmed out of screen'); }
コンソール :
キャプチャdivが画面から暗くなりました
合格しました:verifyAssertFalse
#5)assertNull
このアサーションは、オブジェクトにnullの戻り値があるかどうかを確認するために使用されます。つまり、結果がnullかどうかをチェックします。オブジェクトがNullの場合、アサーションは例外なく渡されます。
構文:
AssertNull(Object)
パラメーター :
オブジェクト –null値を保持するデータ値。
使用法:
例1:
文字列がnullの場合にアサートします。
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNull(str1); // asserts if str1 holds null value System.out.println('String holds null value – Assert passed'); }
例2:
Chromeドライバーを開始する前に、ドライバー値がnullかどうかをアサートします。
最高の無料mp3音楽ダウンローダー
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
ここでは、ドライバオブジェクトは開始されていないため、nullです。したがって、AssertNull(driver)は、オブジェクト「driver」がnull値を保持しているかどうかを検証するため、成功します。
#6)assertNotNull
このアサーションは、Null値以外の有効な戻り値の型を想定しています。つまり、オブジェクトがNullでないかどうかをチェックします。戻り値の型は、ブール値、文字列、整数、リストなどです。オブジェクトがnullでない場合、アサーションが渡され、そうでない場合、AssertionErrorがスローされます。
構文:
AssertNotNull(Object)
パラメーター :
オブジェクト –任意のデータ値を保持する任意のデータ値。
使用法:
例1: Assertは、いくつかのデータを保持する文字列です。つまり、Nullではありません。
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNotNull(str2); // asserts if str2 holds some value System.out.println('String holds null value – Assert passed'); }
例2: FirefoxDriverを開始した後、ドライバオブジェクトがnullでないことを確認します。
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
ここでは、ドライバーオブジェクトはFirefoxドライバーに対して開始されているため、「ドライバー」オブジェクトは開始されていないため、何らかの値を保持します。したがって、AssertNotNull(ドライバー)は、オブジェクト「ドライバー」がnull値を保持していないかどうかを検証するため、成功します。
クリック ここに サンプルテストケース用。
アサーションのサンプルプログラム
等しいをアサート:
package Demo; import org.junit.Assert; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionDemo { public static void main(String() args) throws InterruptedException{ String sValue = 'Assert Equals Test'; Assert.assertEquals('Assert Equals Test', sValue); System.out.println('Test Passed'); } }
コードの説明:
上記のコードは、AssertEqualsメソッドの使用法を簡単に示しています。
- 前に説明したように、assert equalsは、期待される結果と実際の結果という2つのパラメーターを取ります。期待される結果が実際の結果と一致しない場合、アサーションエラーがスローされ、プログラムの実行はassertequalsメソッドで終了します。
- 上記のコードは、ユーザー定義の文字列値を期待される文字列値と比較します。
- リアルタイムでは、実際の結果はユーザー定義の操作になり、実行時に値がフェッチされ、パラメーターとしてassertequalsメソッドに渡されることに注意してください。
Trueをアサート:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
コードの説明:
上記のコードは、assertTrueメソッドの使用法を示しています。
- 最初に、予想されるページタイトルを変数に渡します。次に、Firefoxドライバーのオブジェクトをインスタンス化し、それをWebページ(https://www.google.com)に移動します。
- 後で、assertsTrueメソッドを使用して、開いたページタイトルを予想されるページタイトルのタイトルと比較します。開いたページのタイトルが期待されるタイトルのタイトルと一致しない場合、アサーションエラーがスローされ、プログラムの実行はassertTrueメソッドで終了します。
- 上記のコードは、実際のページタイトルが予想されるページタイトルのタイトルと一致する場合にのみ正常に実行されます。
Falseをアサート:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google1'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
コードの説明:
上記のコードは、assertfalseメソッドの使用法を示しています。
- 最初に予想されるページタイトルを変数に渡し、次にFirefoxドライバーのオブジェクトをインスタンス化してWebページ(https://www.google.com)に移動します。
- 後で、assertfalseメソッドを使用して、開いたページタイトルを予想されるページタイトルのタイトルと比較します。開いたページのタイトルが予想されるタイトルのタイトルと一致する場合、アサーションエラーがスローされ、プログラムの実行はassertfalseメソッドで終了します。
- 上記のコードは、実際のページタイトルが予想されるページタイトルのタイトルと一致しない場合にのみ正常に実行されます。
アサーションのエンドツーエンドコード
以下に、アサーションのエンドツーエンドコードのサンプルを示します。簡単にするために、次のシナリオを使用しました。
シナリオ:
- FirefoxブラウザでWebページhttps://www.google.comを開きます。
- asserttrueメソッドを使用して、開いたページタイトルが予想されるページタイトルと等しいかどうかを確認します。
- 検索テキストボックスに、検索キーワード「Selenium」を入力します。
- キーボードのEnterボタンを押します。
- assertequalsメソッドとassertfalseメソッドを使用して、検索結果ページで開いたページタイトルが予想されるページタイトルと等しいかどうかを確認します。
- ブラウザを閉じます。
サンプルコード:
packageDemo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo { public static void main(String args()) throws InterruptedException { String expectedTitle = 'Google'; String expectedText = 'selenium - Google Search'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); // Open the web page https://www.google.com using firefox browser WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); // Validate if actual web page title matches with that of expected title using assert true method System.out.println('Assert true method validation'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); // Enter the keyword selenium on the search textbox WebElementsearchBox = driver.findElement(By.xpath('//*(@name='q')')); searchBox.sendKeys('selenium'); searchBox.sendKeys(Keys.ENTER); Thread.sleep(8000); // Validate the actual page title with expected page title using assert equals method System.out.println('Assert equals method validation'); Assert.assertEquals(expectedText, driver.getTitle()); // Page title validation using assert false method System.out.println('Assert false method validation'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); // Close the current browser driver.close(); } }
コード出力:
最初に、Firefoxブラウザウィンドウが次のWebページで開きます:https://www.google.com。 Asserttrueメソッドは、開かれたページタイトルが予想されるページタイトル(Google)のタイトルと一致するかどうかを確認します。
スクリプトは検索キーワードをSeleniumとして入力し、Enterボタンを押します。
Assertfalseメソッドとassertequalsメソッドは、検索結果画面の実際のページタイトルが予想されるタイトルのタイトル(「selenium-GoogleSearch」)と一致するかどうかを比較します。その後、driver.closeメソッドを使用してブラウザを閉じます。
コンソール出力:
以下のテキストは、EclipseIDEのコンソール出力になります。
アサートクラスの使用中によくある間違いを回避する
1.1。 プロジェクトにJUnit、TestNG、およびpythonライブラリが構成されているとします。
二 。ただし、スクリプトでは、TestNGアノテーションを使用しており、誤ってJunitアサーションを選択すると、Assertクラスは非推奨になります。以下のスクリーンショットを参照してください
3.3。 したがって、適切なアサートクラスを選択することが非常に重要です。TestNgでは、唯一のorg.TestNGアサートクラスを選択してください。
四。 Junitの場合は、org.junit.Assertクラスなどを選択します。
5.5。 ソフトアサーションを実行するには、assertAll()メソッドを強制的に呼び出す必要があります
6.6。 アサーションが失敗すると、例外ではなくアサーションエラーがスローされます
結論
Seleniumでのアサーションに関するこの記事は、以下の指針で締めくくることができます。
- アサーションは、アプリケーションの実際の結果を期待される結果と比較するために使用されます。
- テストケースは、すべてのアサーションが満たされた場合にのみ合格と見なされます。
- AssertEqualsメソッドは、期待される結果を実際の結果と比較します。期待される結果が実際の結果と一致しない場合はAssertionErrorをスローし、assertequalsメソッドでプログラムの実行を終了します。
- AssertTrueメソッドは、指定された条件が真であることをアサートします。 asserttrueメソッドに渡された条件が満たされない場合、AssertionErrorをスローします。
- AssertFalseメソッドは、指定された条件がfalseであることを表明します。 falseメソッドをアサートするために渡された条件が満たされない場合、AssertionErrorをスローします。
- AssertEquals、AssertTrue、およびAssertFalseメソッドは、Seleniumで最も一般的に使用されるアサーションです。
の中に 今後のチュートリアル 、リアルタイムプロジェクトシナリオで使用されるさまざまな例について説明し、目的に応じてアサーションがどのように使用されるかを理解します。
この記事がSeleniumのアサーションに関する知識を深めることを願っています!!
=> EasySeleniumトレーニングシリーズをお読みください。
推奨読書
- JUnitフレームワークの概要とSeleniumスクリプトでのその使用法– Seleniumチュートリアル#11
- Seleniumスクリプトを作成するためのTestNGフレームワークの使用方法-TestNGSeleniumチュートリアル#12
- SeleniumでTestNGアノテーションを使用する方法を学ぶ(例を含む)
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- SeleniumとJMeterの統合
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- それぞれの長所と短所を備えた最も人気のあるテスト自動化フレームワーク– Seleniumチュートリアル#20
- 30以上の最高のSeleniumチュートリアル:実際の例でSeleniumを学ぶ