上一節我們寫一個日志類 extends testlisteneradapter ----------testlisteneradapter 是 itestlistener 實作的一個類
這一節,我們寫一個日志類 implements itestlistener
itestnglistener 接口 有兩個子接口:ireporter (生成報告)、itestlistener (生成日志)
此次我們寫一個日志類直接實作 itestlistener 接口
在自定義的 customlistener 中,需要實作 itestlistener 的全部方法。
使用自定義的listener
現在完成了建立listener,還需要聲明listener,然後測試腳本才能使用這個listener。
有兩種方式聲明listener:
一種是 添加@listeners 注解到測試條例上,缺點是每個使用自定義listener的測試條例都要添加@listeners注解,很麻煩。
另一種是 使用testng.xml配置檔案,在其中添加suite标簽和listener标簽。
輸出結果:
testng.xml 檔案
itestlistener适用場景
當使用testng執行測試時,我們常會想在某個階段做一些特别的處理,比如:測試成功結束後,測試失敗後,跳過某個腳本後,全部腳本執行完畢後。
要想達成這個目标,我們需要實作testng的itestlistener接口,自定義一個自己的listener。
itestlistener包含兩種類型的方法:
一類是測試用例級别的,例如onteststart,ontestsuccess,ontestfailure,ontestskipped,ontestfailedbutwithinsuccesspercentage;
另一類是測試集級别的,例如onstart,onfinish。這些方法有一個輸入參數,result或者context。
result是itestresult類型的,可以知曉測試用例成功或者失敗和測試何時開始等資訊。
context是itestcontext類型的,适用于測試集級别,可以知曉成功的腳本有哪些,失敗的腳本有哪些。