TestNG執行結果分析與失敗截圖功能介紹

weixin_33850890發表於2017-03-13

TestNG測試結果

一、成功、失敗和斷言:

如果一個測試沒有丟擲任何異常就完成執行或者說丟擲了期望的異常

此時,這個測試是成功的。

測試方法的組成常常包括丟擲多個異常,或者包含各種各樣的斷言

(使用Java "assert" 關鍵字)。一個 "assert" 失敗會觸發一個 AssertionErrorException,

結果就是測試方法被標記為失敗(見例子:test1.java)

3265068-5186c467bc32f347.png

TestNG框架:

1、一個方法(標註@Test),執行失敗(即丟擲異常、斷言或錯誤,此方法中斷)後,

自動執行下一個方法(而一般程式,遇到異常或錯誤時,整個程式會中斷)

2、而針對我們的ERP系統,由於一個方法中包含檢驗的點較多(一般一個方法

(即一個用例)只含一個檢查點(斷言)),故得設法讓其即使檢驗失敗後

(檢驗失敗不一定是系統有問題),仍能繼續向下執行

例子:一個方法含修改和新增功能

一個修改功能,儲存後提示秒閃提示語,檢驗該提示語,由於等待時間沒把握好,

沒能檢驗到,故不能讓其中斷,只需進行截圖(用於結果分析),得繼續執行下面的功能


二、TestNG斷言失敗不中斷繼續執行

監聽器 實現介面 org.testng.ITestListener ,

並且會在測試開始、通過、失敗等時刻實時通知

報告器 實現介面 org.testng.IReporter ,

並且當整個測試執行完畢之後才會通知。

IReporter 接受一個物件列表,這些物件描述整個測試執行的情況


JAVA結合testng斷言verify(斷言失敗不中斷繼續執行)

原理:

1.自已構造一個斷言類,把Assert.assertEquals給try catch住。

2.利用testng的監聽類在測試方法執行結束後進行分析

3265068-b5661f3de82bd608.png

TestNg提供了三種方式來配置開發者自己的介面:

1.註解在TestNg中提供了一個類級別的註解,@Listeners({*.class, *.class})

3265068-e5c3980cbf6665d1.png

��2.配置檔案xml中在配置檔案中我們可以通過這種方式是更靈活的,比第一種寫死在程式碼中更為方便

3265068-bf8a182c8c60a85e.png

三、 截圖:斷言失敗截圖和異常錯誤截圖

1、斷言失敗截圖呼叫

方法:ElementValueEqualsCheck

方法:HtmlContainCheckCommand

2、異常錯誤截圖呼叫

3265068-0ab006bbfc2bdabc.png

3、實現截圖功能的函式handle

由於斷言失敗截圖與異常錯誤截圖存放位置,和所傳引數不同,故用過載函式去實現

BizBaseComman-》handled

例子:PositionAuthorization

相關文章