注意:我無法粘貼確切的框架和代碼,因為我工作的服務器無法從外部訪問。因此,我將嘗試用簡單的語言和例子來解釋我的問題。概述- 我創建了一個 Selenium 自動化框架,其中包括 TestNG、Maven (POM.XML)、測試數據文件、腳本和一些可重用的函數。我面臨的問題- 我使用 Jenkins 來執行我的腳本。Jenkins 調用 POM.XML 文件,該文件又調用 testng.xml 文件(在 testng.xml 文件中,我提到了要執行的腳本)假設我必須執行登錄操作主要腳本@TestPublic void maintest (){//I use Extent reports for reporting purpose and hence I have created extent //reporting reusable function which is called in the below fashion.//If Login method returns pass, ExtentReportingFunc passes Pass to its //function and displays Pass for that particular Login step in the report.ExtentReportingFunc (Login(UserName, Password));}可重用函數Public String Login (String UN, String Pass){//Sendkeys and set UNdriver.findelement (By.id("username")).sendkeys(UN);//Sendkeys and set Passworddriver.findelement (By.id("password")).sendkeys(pass);//Click Logindriver.findelement (By.id("login")).click ();//Verifying the message "Welcome User" is displayed after login try { if (driver.findlement (By.id("welcomemessage")).isdisplayed (); { return pass; } } catch (Exception e)在這里,挑戰是 - 在 catch 塊中,如果我沒有提到“throw e”,Jenkins 將不會理解失敗已經發生并在其控制臺輸出中顯示“BUILD PASSED”。我希望它在 Jenkins 控制臺中顯示“BUILD FAILURE”。我希望它顯示“BUILD FAILED”的原因是 - 我已將 JIRA 與 Jenkins 集成。只有當 jenkins 顯示 BUILD FAILED 時,它才會自動將錯誤記錄到 JIRA。如果它是“BUILD PASSED”并且雖然完成狀態是 UNSTABLE,Jenkins 的測試結果部分不會顯示任何失敗,它也會在 JIRA 中記錄任何錯誤。但是,那時我將無法將返回“失敗”傳遞給主報告功能,以便它可以在報告中將登錄步驟顯示為失敗。我了解,根據 JAVA,我們可以在 catch 塊中拋出或返回,但不能兩者兼而有之。我們還有其他方法可以使這項工作嗎?我已經創建了端到端框架,但后來當我開始與 Jenkins 集成時意識到了這個問題(否則在那之前一切都很好)。
2 回答

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
為什么不在 catch 語句中添加斷言失敗,這樣當它在 catch 語句中時,你會強制 testng 測試失敗
org.testng.Assert.fail("我在這里失敗是因為......你可以在這里添加你的電子郵件");
只需添加之前的代碼行
return "fail";
并保持其余功能不變

慕慕森
TA貢獻1856條經驗 獲得超17個贊
你可以通過使用斷言來解決這個問題,所以只要你的條件不滿足,斷言就會失敗,你的測試用例和詹金斯也會將構建的狀態顯示為“UNSTABLE”而不是“PASS”。
例如,在上面的示例中,不是在 try 中使用 try catch 和 if 條件,而是可以通過一行 assert 來解決,這也將為您提供所需的構建狀態。
您可以將上面的代碼替換為:Assert.assertTrue(driver.findElement(By.id("welcomemessage")).isDisplayed(), "Element is not present on the page");
因此,在這種情況下,如果頁面上未顯示該元素,則斷言將失敗,因為它期望值為真,但會變為假,并且您的詹金斯構建狀態將顯示為不穩定。
添加回答
舉報
0/150
提交
取消