1. 程式人生 > 其它 >《手把手教你》系列基礎篇(八十四)-java+ selenium自動化測試-框架設計基礎-TestNG日誌-上篇(詳解教程)

《手把手教你》系列基礎篇(八十四)-java+ selenium自動化測試-框架設計基礎-TestNG日誌-上篇(詳解教程)

1.簡介

  TestNG還為我們提供了測試的記錄功能-日誌。例如,在執行測試用例期間,使用者希望在控制檯中記錄一些資訊。資訊可以是任何細節取決於目的。牢記我們正在使用Selenium進行測試,我們需要有助於使用者理解測試步驟或測試用例執行期間的任何失敗的資訊。在TestNG Logs的幫助下,可以在Selenium測試用例執行期間啟用日誌記錄。

  這一篇文章巨集哥主要介紹利用TestNG中的Report類來實現簡單的log輸出,在TestNG中有一個Report的類,這個類的作用是,在添加了@Test的方法裡面,通過Report.log("log message")這樣的方式,給每個步驟新增日誌解釋,這些日誌解釋會顯示在TestNG生成的html報告中。

2.兩中模式記錄

日誌資訊一般使用兩中模式記錄,即高層級和底層級。

(1)底層級模式日誌會記錄所有的測試步驟資訊。在低級別日誌記錄中,您嘗試為您執行的每個步驟或在自動化指令碼中執行的每個操作生成日誌。

(2)高層級模式日誌只記錄測試指令碼中的主要時間資訊。在高級別日誌記錄中,您只需嘗試捕獲測試的主要事件。

3.專案實戰

好了,多的不說少的不嘮,直接進入今天的主題-testng日誌。

3.1測試場景

因為這一篇主要是講解日誌,所以巨集哥在這裡模擬一個測試場景:啟動瀏覽器,登入到系統,然後退出系統。

3.2程式碼設計

3.3參考程式碼

package library;


import org.testng.Reporter;
import org.testng.annotations.Test; /** * @author 北京-巨集哥 * * @公眾號:北京巨集哥 * *《手把手教你》系列基礎篇(八十四)-java+ selenium自動化測試-框架設計基礎-TestNG日誌(詳解教程) * * 2022年3月14日 */ public class TestLog { @Test public void OpenBrowser() { System.out.println("OpenBrowser被呼叫!"); Reporter.log("呼叫開啟瀏覽器的方法!"); } @Test(dependsOnMethods
= {"OpenBrowser"}) public void SignIn() { System.out.println("SignIn方法被呼叫!"); Reporter.log("呼叫登入方法!"); } @Test(dependsOnMethods = {"SignIn"}) public void LogOut() { System.out.println("LogOut方法被呼叫!"); Reporter.log("呼叫登出方法!"); } }

3.4執行程式碼

1.執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:

3.5檢視日誌

1.執行程式碼後,找到testng的index.htm測試報告,檢視日誌,如下圖所示:

2.執行程式碼後,找到testng的emailable-report.html測試報告,檢視日誌,如下圖所示:

3.從上圖可以看到用Eclipse自帶瀏覽器打開發現中文的日誌訊息會顯示亂碼,但是進入專案檔案,用本地瀏覽器再次開啟沒有亂碼,巨集哥對比了上邊兩個檔案的html程式碼,發現亂碼的裡邊沒有定義編碼格式,可能是這個原因吧!

 4.將定義編碼格式的程式碼加入後,再次用Eclipse自帶瀏覽器開啟,沒有亂碼,如下圖所示:

4.小結

細心地小夥伴後者童鞋們發現日誌不是按我們的執行順序顯示。網上查了好多資料說是TestNg的jar包裡生成日誌的記錄是按字母排序優先順序來顯示,需要修改jar包的原始碼,還有那個編碼問題也需要修改原始碼。就是你修改原始碼後,再重新匯出一個jar包,然後執行就可以了。

好了,今天時間不早了,今天巨集哥就分享和講解到這裡,感謝您耐心地閱讀!