<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Selenium 中的 TestNG 偵聽器:??ITestListener & ITestResult 示例 > 原文: [https://www.guru99.com/listeners-selenium-webdriver.html](https://www.guru99.com/listeners-selenium-webdriver.html) 有兩個主要的聽眾。 1. WebDriver 偵聽器 2. TestNG 偵聽器 在本教程中,我們將討論 [Testng](/all-about-testng-and-selenium.html) 偵聽器。 這是您將學到的- * [什么是 TestNG 中的偵聽器?](#1) * [TestNG](#2) 中的偵聽器類型 * [測試方案:](#3) * [創建 TestNG 偵聽器](#4)的步驟 * [將偵聽器用于多個類。](#5) ## TestNG 中的偵聽器是什么? 偵聽器定義為修改默認 TestNG 行為的接口。 顧名思義,偵聽器“偵聽”硒腳本中定義的事件并相應地表現。 通過實現偵聽器接口在硒中使用它。 它允許自定義 TestNG 報告或日志。 有多種類型的 TestNG 偵聽器可用。 ![TestNG Listeners in Selenium WebDriver](https://img.kancloud.cn/af/96/af962f1f9afccc9e325be6a7201214e1_599x353.png "Listeners and their use in Selenium WebDriver") ## TestNG 中的偵聽器類型 偵聽器有多種類型,可讓您更改 TestNG 的行為。 以下是一些 TestNG 偵聽器: 1. IAnnotationTransformer, 2. IAnnotationTransformer2, 3. 可配置的 4. IConfigurationListener, 5. IExecutionListener, 6. 我可以 7. IInvokedMethodListener, 8. IInvokedMethodListener2, 9. IMethodInterceptor, 10. IReporter, 11. ISuiteListener, 12. ITestListener。 接口上方稱為 TestNG 偵聽器。 這些接口用于硒中以生成日志或自定義 TestNG 報告。 在本教程中,我們將實現 ITestListener。 ITestListener 具有以下方法 * **OnStart-** OnStart 方法在任何測試開始時被調用。 * **onTestSuccess-** onTestSuccess 方法在任何測試成功時被調用。 * **onTestFailure-在任何測試失敗時調用** onTestFailure 方法。 * **onTestSkipped-** onTestSkipped 方法在任何測試中被跳過。 * 每次測試失敗但在成功百分比之內,都會調用 **onTestFailedButWithinSuccessPercentage-** 方法。 * 執行所有測試后,將調用 **onFinish-** onFinish 方法。 ## 測試方案: 在此測試方案中,我們將自動執行登錄過程并實現“ ItestListener”。 1. 啟動 Firefox 并打開站點“ [http://demo.guru99.com/V4/”](http://demo.guru99.com/V4/) ![TestNG Listeners in Selenium WebDriver](https://img.kancloud.cn/36/9f/369f8ffc5f49c28bb067fe0493120a10_300x146.png "Listeners and their use in Selenium WebDriver") 1. 登錄到該應用程序。 ![TestNG Listeners in Selenium WebDriver](https://img.kancloud.cn/54/75/54752f92cbc88fe63ccd301ddf56abea_541x173.png "Listeners and their use in Selenium WebDriver") ## 創建 TestNG 偵聽器的步驟 對于上述測試方案,我們將實現 Listener。 **步驟 1)**創建實現“ ITestListener”的類“ ListenerTest”。 將鼠標移到紅線文本上,Eclipse 將為您提供 2 個快速修復的建議,如以下屏幕所示: ![TestNG Listeners in Selenium WebDriver](https://img.kancloud.cn/12/a4/12a4d078577ea526b429dac412277fc4_569x291.png "Listeners and their use in Selenium WebDriver") 只需單擊“添加未實現的方法”。 多個未實現的方法(無主體)被添加到代碼中。 檢查以下- ``` package Listener_Demo; import org.testng.ITestContext ; import org.testng.ITestListener ; import org.testng.ITestResult ; public class ListenerTest implements ITestListener { @Override public void onFinish(ITestContext arg0) { // TODO Auto-generated method stub } @Override public void onStart(ITestContext arg0) { // TODO Auto-generated method stub } @Override public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestFailure(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestSkipped(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestStart(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestSuccess(ITestResult arg0) { // TODO Auto-generated method stub } } ``` 讓我們修改“ ListenerTest”類。 特別是,我們將修改以下方法- ``` onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc. ``` 修改很簡單。 我們只打印測試的名稱。 在控制臺中創建日志。 用戶很容易了解哪個測試是通過,失敗和跳過狀態。 修改后,代碼看起來像- ``` package Listener_Demo; import org.testng.ITestContext; import org.testng.ITestListener; import org.testng.ITestResult; public class ListenerTest implements ITestListener { @Override public void onFinish(ITestContext Result) { } @Override public void onStart(ITestContext Result) { } @Override public void onTestFailedButWithinSuccessPercentage(ITestResult Result) { } // When Test case get failed, this method is called. @Override public void onTestFailure(ITestResult Result) { System.out.println("The name of the testcase failed is :"+Result.getName()); } // When Test case get Skipped, this method is called. @Override public void onTestSkipped(ITestResult Result) { System.out.println("The name of the testcase Skipped is :"+Result.getName()); } // When Test case get Started, this method is called. @Override public void onTestStart(ITestResult Result) { System.out.println(Result.getName()+" test case started"); } // When Test case get passed, this method is called. @Override public void onTestSuccess(ITestResult Result) { System.out.println("The name of the testcase passed is :"+Result.getName()); } } ``` **步驟 2)**為登錄過程自動化創建另一個類“ TestCases”。 Selenium 將執行此“ TestCases”以自動登錄。 ``` package Listener_Demo; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Listeners; Import org.testng.annotations.Test; public class TestCases { WebDriver driver= new FirefoxDriver(); // Test to pass as to verify listeners . @Test public void Login() { driver.get("http://demo.guru99.com/V4/"); driver.findElement(By.name("uid")).sendKeys("mngr34926"); driver.findElement(By.name("password")).sendKeys("amUpenu"); driver.findElement(By.name("btnLogin")).click(); } // Forcefully failed this test as to verify listener. @Test public void TestToFail() { System.out.println("This method to test fail"); Assert.assertTrue(false); } } ``` **步驟 3)**接下來,在我們的常規項目類(即“ TestCases”)中實現此偵聽器。 有兩種不同的方法可以連接到類和接口。 第一種方法是使用偵聽器批注(@Listeners),如下所示: ``` @Listeners(Listener_Demo.ListenerTest.class) ``` 如下所示,我們在“ TestCases”類中使用它。 因此,最后,使用偵聽器注釋后,類“ TestCases”看起來像: ``` package Listener_Demo; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Listeners; import org.testng.annotations.Test; @Listeners(Listener_Demo.ListenerTest.class) public class TestCases { WebDriver driver= new FirefoxDriver(); //Test to pass as to verify listeners. @Test public void Login() { driver.get("http://demo.guru99.com/V4/"); driver.findElement(By.name("uid")).sendKeys("mngr34926"); driver.findElement(By.name("password")).sendKeys("amUpenu"); driver.findElement(By.id("")).click(); } //Forcefully failed this test as verify listener. @Test public void TestToFail() { System.out.println("This method to test fail"); Assert.assertTrue(false); } } ``` 項目結構如下: ![TestNG Listeners in Selenium WebDriver](https://img.kancloud.cn/37/e7/37e7aeafb4214388b7f3b73ca7ebad32_268x154.png "Listeners and their use in Selenium WebDriver") **步驟 4):**執行“ TestCases”類。 根據標為@Test 的方法的行為,將自動調用“ ListenerTest”類中??的方法。 **步驟 5):**驗證日志顯示在控制臺上的輸出。 “ TestCases”的輸出將如下所示: ![TestNG Listeners in Selenium WebDriver](https://img.kancloud.cn/e5/72/e572ed4f1abf53e56f6279d882195112_706x743.png "Listeners and their use in Selenium WebDriver") ``` [TestNG] Running: C:\Users\gauravn\AppData\Local\Temp\testng-eclipse--1058076918\testng-customsuite.xml Login Test Case started The name of the testcase passed is:Login TestToFail test case started This method to test fail The name of the testcase failed is:TestToFail PASSED: Login FAILED: TestToFail java.lang.AssertionError: expected [true] but found [false] ``` ## 對多個類使用偵聽器。 如果項目有多個類,則將監聽器添加到每個類中可能很麻煩且容易出錯。 在這種情況下,我們可以創建一個 testng.xml 并在 XML 中添加偵聽器標簽。 ![TestNG Listeners in Selenium WebDriver](https://img.kancloud.cn/d7/84/d7848c6ebb3c76992803042fa750840a_493x261.png "Listeners and their use in Selenium WebDriver") 該偵聽器在整個測試套件中實現,而與您擁有的類數無關。 當您運行此 XML 文件時,偵聽器將在所有提到的類上工作。 您還可以聲明任意數量的偵聽器類。 **摘要:** 需要偵聽器以在 Selenium Webdriver 中生成日志或自定義 TestNG 報告。 * 偵聽器的類型很多,可以根據需要使用。 * 偵聽器是 Selenium Web 驅動程序腳本中使用的接口 * 演示了 Selenium 中偵聽器的使用 * 為多個類實現了監聽器
                  <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>

                              哎呀哎呀视频在线观看