<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # TestNG 組:包含,排除示例-Selenium 教程 > 原文: [https://www.guru99.com/introduction-testng-groups.html](https://www.guru99.com/introduction-testng-groups.html) TestNG 是一個[測試](/software-testing.html)框架,涵蓋了不同類型的測試設計,例如單元測試,功能測試,端到端測試,UI 和集成測試。 您可以通過創建 XML 并通過 maven 運行一個或多個程序包(此處的程序包是指以適當的 Director 格式封裝一組類)。 在本教程中,您將學習- * [個帶有示例](#1)的 TestNG 組 * [在環境變量中設置 Maven 和 Java 路徑(對于 Windows 用戶)](#2) * [XML 簡介以及如何制作 XML 文件](#3) * [替代分組的另一種機制是在測試 XML](#4) 中“排除”或“包含” * [如何使用 XML 文件運行代碼(視頻演示)](#5) ## 具有示例的 TestNG 組 我們在 [Testng](/all-about-testng-and-selenium.html) 中使用組, * 我們不想在不同的類中分別定義測試方法(取決于功能),并且 * 同時要忽略(不執行)某些測試用例,就好像它們在代碼中不存在一樣。 * 因此,要執行此操作,我們必須將它們分組。 這是通過使用 testNG 中支持的“包含”和“排除”機制來完成的。 在下面的示例中,我們顯示了如何在 XML 文件中使用組的語法。 ``` @Test (groups = { "bonding", "strong_ties" }) ``` 在這里,我們使用 2 個組名,即“ bonding”和“ strong_ties”(這些邏輯名可以根據您的意愿進行更改)。 **<組>標簽**定義 XML 中組的開始。 定制 XML 以從測試類中選擇提到的組。 下面提到的是如何在 XML 文件中聲明組的語法,例如 ``` <groups> <run> <include name="bonding" /> </run> </groups> ``` 因此,讓我們假設一個類中有 10 個測試方法。 在他們當中 * “綁定”組中標記了 6 種方法,并且 * 4 個在“ strong_ties”組中 展望未來,我們將設置 maven / Java 路徑,并使用 Eclipse IDE 演示基于 [Java](/java-tutorial.html) 的 maven 項目中使用 XML 文件的組的用法。 ## 在環境變量中設置 Maven 和 Java 路徑(對于 Windows 用戶) 請參考 [https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html](/maven-jenkins-with-selenium-complete-tutorial.html) [https://www.guru99.com/install-java.html](/install-java.html) ## XML 簡介以及如何制作 XML 文件 * Maven 框架中的 XML(可擴展標記語言)文件包含一個或多個測試的信息,并由**標簽<套件>** 定義。 * XML 中的測試信息由**標簽< test >** 表示,并且可以包含一個或多個 TestNG 類。 * 將包含上述測試方法上方的 **@Test** 注釋的 Java 類定義為 TestNG 方法。 序列中使用多個標簽來構建有效的 testNG xml,例如<套件>,<測試>和<類> * 首先是<套件>標簽,它包含一個邏輯名,該邏輯名定義了報告給 testNG 的完整信息,以生成執行報告。 * 第二個是<測試名稱=“ Guru 99 Smoke Test Demo” >,請注意這是邏輯名稱,其中包含測試執行報告的信息,如通過,失敗,跳過測試用例以及其他信息,如執行和分組的總時間 信息 * 第三是< class name =“ **com.group.guru99.TC_Class1** ” / >,com.group.guru99 是使用的包,測試類名稱為 TC_Class1。 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test name="Guru 99 Smoke Test Demo"> <groups> <run> <include name="strong_ties" /> </run> </groups> <classes> <class name="com.group.guru99.TC_Class1" /> </classes> </test> </suite> ``` 我們將使用此 XML 來處理即將到來的視頻缺點。 ## 另一種代替分組的機制是測試 XML 中的“排除”或“包含” 假設您發現復雜的組機制的用法,那么 testNG XML 促進了排除/包括測試的功能。 ``` Exclude Tag: Syntax for exclude tag <exclude name="${TEST_CASE_NAME}" /> Include Tag: Syntax for include tag <include name="${TEST_CASE_NAME}" /> ``` **注意:**我們可以一次包含/排除多個測試用例,它也適用于 Groups。 ## 如何使用 XML 文件運行代碼(視頻演示) 帶有**組的 Java 代碼和 XML 的說明,將**標簽排除并包括在 XML 中。 * **Scenario**: Launch Guru99 demo Banking site, verify few thing's on login page after that enter credentials and re-verify few new thing on the application when logged in. ![Introduction to TestNG Groups](https://img.kancloud.cn/45/02/45026d4dee0cef0e9150d6b6a636c3ea_730x309.png "Introduction to TestNG Groups") **注意**:應編碼的每個步驟都應在單獨的方法中聲明,但是在執行時,它將根據 XML 文件中的條目執行測試方法。 **方法 1** :初始化瀏覽器并啟動 URL(tc01LaunchURL()) **方法 2** :驗證登錄頁面標題(tc02VerifyLaunchPage()) **方法 3** :在登錄表單(tc03EnterCredentials())上輸入用戶名和密碼 **方法 4** :驗證用戶儀表板上是否存在 Manager ID(tc04VerifyLoggedInPage()) **方法 5** :驗證用戶儀表板上的更多鏈接(tc05VerifyHyperlinks()) **我們方案的代碼:** ``` package com.group.guru99; import java.util.concurrent.TimeUnit; 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 TC_Class1 { public static final WebDriver webDriver = new FirefoxDriver();; String launchPageHeading = "//h3[text()='Guru99 Bank']"; final String userName_element = "//input[@name='uid']", password_element = "//input[@name='password']", signIn_element = "//input[@name='btnLogin']"; final String userName_value = "mngr28642", password_value = "ydAnate"; final String managerID = "//td[contains(text(),'Manger Id')]"; final String newCustomer = "//a[@href='addcustomerpage.php']", fundTransfer = "//a[@href='FundTransInput.php']"; /** * This test case will initialize the webDriver */ @Test(groups = { "bonding", "strong_ties" }) public void tc01LaunchURL() { webDriver.manage().window().maximize(); webDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); webDriver.get("http://www.demo.guru99.com/V4/"); } /** * Will check the presence of Heading on Login Page */ @Test(groups = { "bonding" }) public void tc02VerifyLaunchPage() { Assert.assertTrue(webDriver.findElement(By.xpath(launchPageHeading)).isDisplayed(), "Home Page heading is not displayed"); System.out.println("Home Page heading is displayed"); } /** * This test case will enter User name, password and will then click on * signIn button */ @Test(groups = { "bonding", "strong_ties" }) public void tc03EnterCredentials() { webDriver.findElement(By.xpath(userName_element)).sendKeys(userName_value); webDriver.findElement(By.xpath(password_element)).sendKeys(password_value); webDriver.findElement(By.xpath(signIn_element)).click(); } /** * This test case will verify manger's ID presence on DashBoard */ @Test(groups = { "strong_ties" }) public void tc04VerifyLoggedInPage() { Assert.assertTrue(webDriver.findElement(By.xpath(managerID)).isDisplayed(), "Manager ID label is not displayed"); System.out.println("Manger Id label is displayed"); } /** * This test case will check the presence of presence of New customer link * And FundTransfer link in Left pannel */ @Test(groups = { "bonding" }) public void tc05VerifyHyperlinks() { Assert.assertTrue(webDriver.findElement(By.xpath(newCustomer)).isEnabled(), "New customer hyperlink is not displayed"); System.out.println("New customer hyperlink is displayed"); Assert.assertTrue(webDriver.findElement(By.xpath(fundTransfer)).isEnabled(), "Fund Transfer hyperlink is not displayed"); System.out.println("Fund Transfer hyperlink is displayed"); } } ``` 請注意:憑據僅有效 20 天,因此,如果您嘗試在本地計算機上運行代碼,則可能會遇到無效的憑據錯誤。 請找到以下步驟來生成您的登錄憑據: 1. 啟動 [http://www.demo.guru99.com](http://www.demo.guru99.com) 2. 在框中輸入您的電子郵件 ID。 3. 單擊輸入,然后在屏幕上查看您的登錄詳細信息。 **代碼說明:** 如上所述,我們創建了 5 個測試用例,以獨立的方法執行每個動作。 您可以觀察到,對于每種方法,我們都關聯了一個在其中包含某些值的組參數。 基本上,這些是區分組的名稱,即“ strong_ties” &“ bonding”。 * 第一個和第三個方法被標記為“ bonding”,“ strong_ties”,這意味著如果在任何組中更新 XML,則將運行此[測試用例](/test-case.html)。 * 第二種方法僅標記為“ bonding”組,這意味著如果 XML 是使用 bonding 組更新的。 僅在這種情況下,此測試用例才會運行。 * 第四個測試用例被標記為 strong_ties 組,這意味著該測試用例僅在 XML 用 strong_ties 組名更新時才運行。 * 最后但并非最不重要的第五個測試用例已附加到綁定組,這意味著只有在使用綁定組名稱更新 XML 的情況下,此測試用例才會運行。 因此,總的來說,我們有 4 種情況; 1. 我們想要運行所有測試用例,而與組名無關。 在這種情況下,我們將從運行 XML 中刪除 Group 標記。 2. 我們想要運行僅與兩個組中的任何一個都相關的測試用例,即 strong_ties 或 bonding * Please refer: * 在此視頻中,從運行 XML 中注釋了 Group 參數。 因此,您將看到所有測試用例都已執行。 * 繼續播放視頻,現在我們在 XML 中包含了組名,您只能看到特定于該組的測試用例正在運行。 3. 我們正在使用排除機制來排除測試用例: * Please refer * 您會看到,通過在運行 XML 中編寫它們的名稱,我們已經使用了排除少數測試用例(tc02)。 在最終結果中,提到的測試用例沒有運行。 4. 最后,我們使用包含測試機制來包含測試用例(tc01LaunchURL,tc03EnterCredentials 和 tc05VerifyHyperlinks) * Please refer * 在此視頻中,您將看到 XML 提到的測試用例僅在測試執行期間運行。 請從提到的 URL 下載代碼,它將包含所有類型的 testXML: [下載上面的代碼](https://drive.google.com/uc?export=download&id=0ByI5-ZLwpo25UTBMbnlEMmM1YU0) **結論** 我們在這里學到了相對較新的方法,用于在 Maven 項目中使用 XML 運行測試用例。 我們首先提供有關 testNG 的簡要介紹,然后繼續討論 Groups 的完整技術規范,包括和排除。
                  <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>

                              哎呀哎呀视频在线观看