基於Java+Selenium的WebUI自動化測試框架(四)-----設置監聽類


     基於上一篇的內容,這里我們開始寫監聽類Listener。我這里寫監聽類的思路是,繼承TestListenerAdapter這個類,然后對其中的方法進行重寫。網上也有很多資料,建議先學習一下,然后寫出來。

package webui.xUtils;

import org.openqa.selenium.WebDriver;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.Reporter;
import org.testng.TestListenerAdapter;


public class TestNGListener extends TestListenerAdapter{
   private static WebDriver driver; 
   logUtil log = new logUtil(TestNGListener.class); 
   public static void setDriver(WebDriver driver) {    
      TestNGListener.driver = driver;    

    } 

  @Override

  //用例執行結束后,用例執行成功時調用
  public void onTestSuccess(ITestResult tr) {    
    log.info("測試步驟成功完成。"+"------Test Success!");    
    Reporter.log("測試步驟成功完成。"+"------Test Success!");
    super.onTestSuccess(tr);    
    } 
  @Override

  //用例執行結束后,用例執行失敗時調用
  public void onTestFailure(ITestResult tr) {    
    log.error("測試步驟執行失敗。"+"------Test Failure!");    
    Reporter.log("測試步驟執行失敗。"+"------Test Failure!");
    super.onTestFailure(tr);

    //發生錯誤后截圖的功能可以根據實際需求進行添加。
    //ScreenShot screenShot = new ScreenShot(driver);    
    //獲取當前project目錄    
    //String path = System.getProperty("user.dir").replace("\\", "/");    
    //加上時間戳以區分截圖    
    //    String curTime = TimeUtil.formatDate("yyyy-MM-dd");    
    //screenShot.saveScreenShot(path + "/img/", "testFail" + ".png");    
    } 
  @Override

  //用例執行結束后,用例執行skip時調用
  public void onTestSkipped(ITestResult tr) {    
    log.error("測試執行步驟跳過。"+"------Test Skipped!");    
    Reporter.log("測試執行步驟跳過。"+"------Test Skipped!");
    super.onTestSkipped(tr);    
    } 
  @Override

  //每次調用測試@Test之前調用
  public void onTestStart(ITestResult tr) {    
    log.info("------測試開始。內容:" + tr.getMethod().getDescription() +"------Start!");    
    Reporter.log("------測試開始。內容:" + tr.getMethod().getDescription() +"------Start!");
    super.onTestStart(tr);    
    } 
  @Override

  //在所有測試運行之后調用,並且所有的配置方法都被調用
  public void onFinish(ITestContext testContext) {    
    log.info("------結束:"+" ------Test Finish!");    
    Reporter.log("------結束:"+" ------Test Finish!");
    super.onFinish(testContext);    
    } 
}

     這樣,我們完成了對監聽類的編寫,在實際寫測試用例的代碼時候,加入注釋@Listener({TestNGListener.class}),並且在進行初始化driver的時候來設置driver即可。例如:TestNGListener.setDriver(driver);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM