天天看點

testng日志 ITestListener

上一節我們寫一個日志類 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類型的,适用于測試集級别,可以知曉成功的腳本有哪些,失敗的腳本有哪些。