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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # TestNG:如何在 Selenium 中運行多個測試套件 > 原文: [https://www.guru99.com/testng-execute-multiple-test-suites.html](https://www.guru99.com/testng-execute-multiple-test-suites.html) TestNG 使您可以在項目中并行運行測試方法,測試類和測試用例。 通過執行并行執行,我們可以減少在不同線程中同時啟動和執行測試的“執行時間”。 在這里,我們將看到如何使用 TestNG 運行多個類(又名不同的套件)。 ## 步驟 1)創建一個 TestNG.xml 文件以執行測試 為此,請執行以下步驟。 1. 在 eclipse 中創建一個新項目 2. 在項目中創建兩個包(將它們分別命名為 com.suite1 和 com.suite2) 3. 在每個包中創建一個類(將它們命名為 Flipkart.java 和 Snapdeal.java),然后將以下代碼復制到各個類中 4. 在您的項目中創建一個新文件,并將其命名為 testng.xml(確保已安裝了 eclipse 的測試插件,可在此處找到說明)。 Testng.xml 包含所有配置(類名,測試名和西服名。 Flipkart.java ``` package com.suite1; import java.util.concurrent.TimeUnit; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class Flipkart{ WebDriver driver = new FirefoxDriver(); String username = ""; // Change to your username and passwrod String password = ""; // This method is to navigate flipkart URL @BeforeClass public void init() { driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.navigate().to("https://www.flipkart.com"); } // To log in flipkart @Test public void login() { driver.findElement(By.partialLinkText("Login")).click(); driver.findElement( By.cssSelector(".fk-input.login-form-input.user-email")) .sendKeys(username); driver.findElement( By.cssSelector(".fk-input.login-form-input.user-pwd")) .sendKeys(password); driver.findElement(By.cssSelector(".submit-btn.login-btn.btn")).click(); } // Search For product @Test public void searchAndSelectProduct() { driver.findElement(By.id("fk-top-search-box")).sendKeys("moto g3"); driver.findElement( By.cssSelector("search-bar-submit.fk-font-13.fk-font-bold")) .click(); // select the first item in the search results String css = ".gd-row.browse-grid-row:nth-of-type(1) > div:nth-child(1)>div>div:nth-child(2)>div>a"; driver.findElement(By.cssSelector(css)).click(); } @Test public void buyAndRemoveFromCart() { driver.findElement( By.cssSelector(".btn-express-checkout.btn-big.current")) .click(); driver.findElement(By.cssSelector(".remove.fk-inline-block")).click(); Alert a = driver.switchTo().alert(); a.accept(); } @Test public void logout() { Actions s = new Actions(driver); WebElement user = driver.findElement(By.partialLinkText(username)); s.moveToElement(user).build().perform(); driver.findElement(By.linkText("Logout")).click(); } @AfterClass public void quit() { driver.close(); } } ``` SnapDeal.java ``` package com.suite2; import java.util.concurrent.TimeUnit; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class SnapDeal { WebDriver driver = new FirefoxDriver(); String username = ""; // Change to your username and passwrod String password = ""; String pinCode = ""; // This method is to navigate snapdeal URL @BeforeClass public void init() { driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.navigate().to("https://www.snapdeal.com"); } // To log in flipkart @Test public void login() { driver.findElement(By.xpath("//button[text()='Login']")).click(); driver.switchTo().frame("loginIframe"); driver.findElement(By.cssSelector("div[onClick='getLoginForm()']")) .click(); driver.findElement(By.id("j_username")).sendKeys(username); driver.findElement(By.id("j_password_login")).sendKeys(password); driver.findElement(By.id("signin_submit")).click(); driver.switchTo().defaultContent(); } // Search For product @Test public void searchAndSelectProduct() { driver.findElement(By.cssSelector(".col-xs-20.searchformInput.keyword")) .sendKeys("iphone 6s"); driver.findElement(By.cssSelector(".sd-icon.sd-icon-search")).click(); // select the first item in the search results String css = ".product_grid_row:nth-of-type(1)>div:nth-child(1)"; driver.findElement(By.cssSelector(css)).click(); } @Test public void buyAndRemoveFromCart() { driver.findElement(By.xpath("//li[contains(text(),'Silver')]")).click(); driver.findElement(By.id("pincode-check")).sendKeys(pinCode); driver.findElement(By.id("buy-button-id")).click(); driver.findElement(By.cssSelector("i[title='Delete Item']")).click(); Alert a = driver.switchTo().alert(); a.accept(); } @Test public void logout() { driver.findElement(By.linkText("START SHOPPING NOW")).click(); Actions s = new Actions(driver); WebElement user = driver.findElement(By.cssSelector(".sd-icon.sd-icon-user")); s.moveToElement(user).build().perform(); driver.findElement(By.linkText("Logout")).click(); } @AfterClass public void quit() { driver.close(); } } ``` TestNg.xml ``` <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite thread-count="1" verbose="1" name="Gmail Suite" annotations="JDK" parallel="tests"> <test name="flipkart"> <classes> <class name="com.suite1.Flipkart"/> </classes> </test> <test name="Myntra"> <classes> <class name="com.suite2.SnapDeal"/> </classes> </test> </suite> ``` 最終的項目結構如下所示, ![TestNG: Execute multiple Test Suites](https://img.kancloud.cn/31/62/31624e5a24829407884199cc290f6d9d_386x294.png "TestNG: Execute multiple test suites") ## 步驟 2)在 TestNG 中并行執行 如上所示創建 xml 文件后,在下一步中,我們將執行并行測試。 下面是代碼。 ![TestNG: Execute multiple Test Suites](https://img.kancloud.cn/2e/c5/2ec5b963fdce42f050cf8cf148a8422a_735x276.png "TestNG: Execute multiple test suites") **1)** **線程數**:用于基于數字腳本的并行執行。 它將以并行或順序執行。 **2)** **詳細**:用于在控制臺中記錄執行詳細信息。 該值應為 1-10。 隨著增加 testng.xml 配置文件中 verbose 屬性的值,控制臺窗口中的日志詳細信息將變得更加詳細和清晰。 **3)** **名稱**:套件名稱。 這是“ Gmail 套件” **4)** **并行**:要并行運行腳本,值可以是測試/類/方法/套件。 默認值為**無** 右鍵單擊 testng.xml 并選擇“運行作為測試”,一旦成功,您將看到所有結果 當您執行以上代碼時,您將獲得以下輸出。 **輸出:** ![TestNG: Execute multiple Test Suites](https://img.kancloud.cn/bd/a5/bda5ff08dfc8c1f9eb39c26d5ea01a85_315x258.png "TestNG: Execute multiple test suites") 1)在 testng.xml 中給出的套件名稱 ![TestNG: Execute multiple Test Suites](https://img.kancloud.cn/ba/78/ba783f8dc6599724e006f8b179c62660_736x19.png "TestNG: Execute multiple test suites") 2)testng.xml 中給出的測試名稱 ![TestNG: Execute multiple Test Suites](https://img.kancloud.cn/0d/40/0d403814b08390409e1579c8f3adefd5_194x25.png "TestNG: Execute multiple test suites") 3)在 testng.xml 中給出的類的名稱 ![TestNG: Execute multiple Test Suites](https://img.kancloud.cn/c0/58/c05886a80af93eed95a94b1b3a56dbf6_306x18.png "TestNG: Execute multiple test suites") 4).java 文件中用@Test 注釋的方法名稱 ![TestNG: Execute multiple Test Suites](https://img.kancloud.cn/56/6d/566dbb691d6fd49d741d479fac627c47_307x51.png "TestNG: Execute multiple test suites") 同樣,它將執行測試套件以進行快速交易。 **結論:** 在上面的示例中,我們在這里看到了如何使用 [Testng](/all-about-testng-and-selenium.html) 執行并行測試。 TestNG 提供了在單個配置文件(XML)中并行執行多個測試的選項。
                  <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>

                              哎呀哎呀视频在线观看