<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 硒中的 TestNG @Test 優先級 > 原文: [https://www.guru99.com/test-case-priority-testng.html](https://www.guru99.com/test-case-priority-testng.html) TestNG 是一個[測試](/software-testing.html)框架,涵蓋了不同類型的測試設計,例如單元測試,功能測試,端到端測試,UI 測試和集成測試。 您可以在 [Testng](/all-about-testng-and-selenium.html) 代碼中運行單個或多個測試用例。 如果在運行多個測試用例時未定義測試優先級,則 TestNG 會將所有@Test 的優先級分配為零(0)。 現在,在跑步時; 優先級較低的將優先安排。 在本教程中,您將學習- * [不具有優先級的 TestNG 代碼演示](#1) * [沒有按字母順序優先的 TestNG 代碼演示](#2) * [如何在 TestNG](#3) 中設置優先級 * [具有相同優先級的方法](#4) * [結合優先級(具有相同優先級)和非優先級方法](#5) ## 無優先權的 TestNG 代碼演示 讓我們來看一個需要排序以便通過所有測試用例的場景: **場景:**生成一個代碼,在其中您需要使用特定關鍵字“ Facebook”執行 Google 搜索。 現在,確認瀏覽器標題已更改為“ Facebook-Google 搜索”。 注意:您編碼的每個步驟應使用單獨的方法 **方法 1** :打開瀏覽器說 Firefox(openBrowser()) **方法 2** :啟動 Google.com(launchGoogle()) **方法 3** :使用“ Facebook”執行搜索(performSearchAndClick1stLink()) **方法 4** :驗證 Google 搜索頁標題(FaceBookPageTitleVerification()) **我們的方案**的代碼: ``` import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class Priority_In_testNG { WebDriver driver; // Method 1: Open Brower say Firefox @Test public void openBrowser() { driver = new FirefoxDriver(); } // Method 2: Launch Google.com @Test public void launchGoogle() { driver.get("http://www.google.co.in"); } // Method 3: Perform a search using "Facebook" @Test public void peformSeachAndClick1stLink() { driver.findElement(By.xpath(".//*[@title='Search']")).sendKeys("Facebook"); } // Method 4: Verify Google search page title. @Test public void FaceBookPageTitleVerification() throws Exception { driver.findElement(By.xpath(".//*[@value='Search']")).click(); Thread.sleep(3000); Assert.assertEquals(driver.getTitle().contains("Facebook - Google Search"), true); } } ``` **代碼**的說明 如上所述,我們創建了 4 個測試用例,以獨立的方式執行每個動作。 * 第一種方法**(openBrowser)**聲明要初始化 Firefox 瀏覽器。 * 第二種方法**(launchGoogle)**指出,啟??動 Google.com 是在已初始化的瀏覽器中。 * 第三種方法**(peformSeachAndClick1stLink)**規定在搜索框中執行搜索(使用 xpath **(“ .//*[@title='Search']”“)**) 作為 **Facebook** 和 * 第四個也是最后一個方法**(FaceBookPageTitleVerification)**指出,單擊 Google 的搜索圖標并確認瀏覽器標題已更改為 **Facebook-Google 搜索。** 現在,如視頻所示,使用 testNG 運行此代碼,您會發現所有[測試用例](/test-case.html)都失敗了。 失敗的原因:由于要通過以前的測試用例,因此僅通過當前正在運行的測試用例。 在這種情況下, * 執行的第一個方法是 **openBrowser()。** 它通過了,因為它沒有任何依賴性。 * 執行的第二個方法是 **FaceBookPageTitleVerification();。** 失敗,因為我們試圖單擊搜索按鈕并驗證瀏覽器標題。 * 您可以看到,如果搜索活動未處理,那么如何傳遞其他任何步驟。 因此,這就是我的測試用例失敗的原因。 ``` PASSED: openBrowser FAILED: FaceBookPageTitleVerification FAILED: launchGoogle FAILED: peformSeachAndClick1stLink ``` ## 沒有按字母順序優先的 TestNG 代碼演示 如果我們沒有提到任何優先級,則 testng 將根據其方法名稱的字母順序執行@Test 方法,而不管其在代碼中的實現位置。 ``` package com.guru.testngannotations; import org.testng.annotations.Test; public class TestNG_Priority_Annotations { @Test public void c_method(){ System.out.println("I'm in method C"); } @Test public void b_method(){ System.out.println("I'm in method B"); } @Test public void a_method(){ System.out.println("I'm in method A"); } @Test public void e_method(){ System.out.println("I'm in method E"); } @Test public void d_method(){ System.out.println("I'm in method D"); } } ``` 輸出量 ``` I'm in method A I'm in method B I'm in method C I'm in method D I'm in method E ``` 盡管我們以隨機方式(c,b,a,e,d)定義了方法,但是 testng 通過考慮字母順序基于它們的方法名稱執行了這些方法,并且它們也反映在輸出中。 ## 如何在 TestNG 中設置優先級 正如您在前面的示例中看到的那樣,順序才能通過此場景,因此,我們將使用 **Priority Parameter** 修改前面的代碼,以便每個測試都應根據分配給它們的優先級運行 。 現在您可以看到,我們已經為每個測試用例分配了優先級,這意味著將首先執行較低優先級值的測試用例。 **進行測試的 NG 優先** ``` import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class Priority_In_testNG { WebDriver driver; // Method 1: Open Browser say Firefox @Test (priority=1) public void openBrowser() { driver = new FirefoxDriver(); } // Method 2: Launch Google.com @Test (priority=2) public void launchGoogle() { driver.get("http://www.google.co.in"); } // Method 3: Perform a search using "Facebook" @Test (priority=3) public void peformSeachAndClick1stLink() { driver.findElement(By.xpath(".//*[@title='Search']")).sendKeys("Facebook"); } // Method 4: Verify Google search page title. @Test (priority=4) public void FaceBookPageTitleVerification() throws Exception { driver.findElement(By.xpath(".//*[@value='Search']")).click(); Thread.sleep(3000); Assert.assertEquals(driver.getTitle().contains("Facebook - Google Search"), true); } } ``` **代碼**的說明 為每個測試用例分配優先級后,使用 testNG 運行以上代碼,如下面提到的 Video-2 所示。 在這里,您可以看到測試用例具有優先級。 首先執行具有較低優先級的測試用例,即現在根據測試用例中的優先級進行順序執行。 因此,所有測試用例現在都通過了。 注意 eclipse 的控制臺: **輸出**: ``` PASSED: openBrowser PASSED: launchGoogle PASSED: peformSearchAndClick1stLink PASSED: FaceBookPageTitleVerification ``` 數字 0 的優先級最高(將首先執行),并且優先級將根據給定的數字繼續進行,即 0 的優先級高于 1。1 的優先級高于 2,依此類推。 ``` package com.guru.testngannotations; import org.testng.annotations.Test; public class TestNG_Priority_Annotations { @Test(priority=6) public void c_method(){ System.out.println("I'm in method C"); } @Test(priority=9) public void b_method(){ System.out.println("I'm in method B"); } @Test(priority=1) public void a_method(){ System.out.println("I'm in method A"); } @Test(priority=0) public void e_method(){ System.out.println("I'm in method E"); } @Test(priority=3) public void d_method(){ System.out.println("I'm in method D"); } } ``` Output ``` I'm in method E I'm in method A I'm in method D I'm in method C I'm in method B ``` 在這里,我們提供的優先級為 0、1、3、6、9。 因此,首先執行優先級為 0 的方法,然后執行優先級為 1 的方法,依此類推。 由于我們提供了優先級,此處將不考慮字母順序方法名稱 ## 具有相同優先級的方法: 方法可能會包含相同的優先級。 在這些情況下,testng 考慮優先級相同的方法名稱的字母順序。 ``` package com.guru.testngannotations; import org.testng.annotations.Test; public class TestNG_Priority_Annotations { @Test(priority=6) public void c_method(){ System.out.println("I'm in method C"); } @Test(priority=9) public void b_method(){ System.out.println("I'm in method B"); } @Test(priority=6) public void a_method(){ System.out.println("I'm in method A"); } @Test(priority=0) public void e_method(){ System.out.println("I'm in method E"); } @Test(priority=3) public void d_method(){ System.out.println("I'm in method D"); } } ``` 輸出量 ``` I'm in method E I'm in method D I'm in method A I'm in method C I'm in method B ``` 此處,“ e”和“ d”是根據其優先級值執行的。 但是方法“ a”和“ c”包含相同的優先級值(6)。 因此,這里 testng 考慮了字母“ a”和“ c”的順序并相應地執行它們。 ## 結合優先級(具有相同優先級)和非優先級方法: 在這種情況下,我們將在一堂課中介紹兩種情況。 1. 具有相同優先級值的方法。 2. 超過一種非優先方法。 ``` package com.guru.testngannotations; import org.testng.annotations.Test; public class TestNG_Priority_Annotations { @Test() public void c_method(){ System.out.println("I'm in method C"); } @Test() public void b_method(){ System.out.println("I'm in method B"); } @Test(priority=6) public void a_method(){ System.out.println("I'm in method A"); } @Test(priority=0) public void e_method(){ System.out.println("I'm in method E"); } @Test(priority=6) public void d_method(){ System.out.println("I'm in method D"); } } ``` **輸出:** ``` I'm in method B I'm in method C I'm in method E I'm in method A I'm in method D ``` ``` PASSED: b_method PASSED: c_method PASSED: e_method PASSED: a_method PASSED: d_method ``` **說明:** **第一優先級:**非優先級方法:“ c”和“ b”:基于字母順序,先執行“ b”,然后執行“ c”。 **第二優先級:**優先方法:“ a”,“ e”和“ d”:由于具有最高優先級(0),因此首先執行“ e”。 由于“ a”和“ d”方法的優先級相同,因此 testng 考慮了它們的方法名稱的字母順序。 因此,在它們之間,首先執行“ a”,然后執行“ d”。 **在 TestNG** 中區分大小寫 僅供參考,有一種用于在 testNG 中定義優先級的標準語法,即 **@Test(priority = 4)**,假定您以其他語法進行定義,例如 **@Test (PRIORITY = 1)**,那么您的 IDE 會將其顯示為編譯錯誤。 請參考下圖: ![TestNG Priority in Test Cases](https://img.kancloud.cn/10/9e/109e00af59104a1faca7daa8ca4dd9c2_601x298.png "Test Case Priority in TestNG") **結論:** 如您所見,如果需要按特定順序運行一組測試用例,則可以使用 testNG 作為運行工具,使用 **Priority** 輕松完成。 ***由于 Ramandeep Singh 和 Rama Krishna Gadde*** 的貢獻,使得本教程成為可能。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看