如何在 Selenium 中生成範圍報告

已發表: 2021-06-21

在 selenium 中用於測試自動化的開源庫是 ExtentReports。 測試框架; NUnit、JUnit 等可以與該庫集成。 在 Selenium 中通過 TestNG 和 JUnit 框架創建了內置報告,但 Extent 報告仍然是 selenium 自動化測試人員的首選。 selenium 中範圍報告可以更深入地了解自動化腳本的執行。 結果顯示為餅圖,基本上是 HTML 文檔。 是快照之類的詳細信息,並且可以通過庫生成自定義日誌。

成功運行自動化測試後,測試人員將生成測試執行報告。 TestNG 提供了默認報告,但未提供詳細信息。 借助 ExtentReport API 的適用性,可以通過簡單的配置生成交互式報告。 該庫支持 JUnit、NUnit 和 TestNG 等 Java 和 .Net 框架。

範圍報告maven的依賴關係

資源

硒範圍報告包括兩類:

目錄

1. ExtentReports 類

測試人員指定一個路徑,並根據指定的路徑,從 ExtentReports 類生成 HTML 報告。 要么生成新報告,要么覆蓋現有報告。 它是根據布爾值決定的。 默認布爾值為“true”,這意味著將覆蓋過去存在的所有數據。

2.ExtentTest類

測試步驟通過 ExtentTest 類記錄到通過上述方法生成的 HTML 報告中。

3. 擴展 HtmlReporter

此類創建一個 HTML 文件。

列出的內置函數可以與下面列出的類一起使用。

  • startTest:執行測試中一個case的前置條件
  • endTest:執行測試中case的後置條件。
  • Log方式:通過Log將測試中每一步的狀態記錄到生成的HTML報告中。
  • 刷新:創建一個新報告,刪除先前報告中的數據。

以下值用於指示測試的狀態:PASS、SKIP、FAIL 和 INFO。

如何創建範圍報告

生成範圍報告的一些先決條件是:

  • Java的預安裝和設置。
  • TestNG的安裝。
  • 下載範圍報告罐(版本 2.41.2)。
  • 允許配置 HTML 報告的 extent-config.xml 要求。

生成範圍報告所需遵循的基本步驟是:

  • 將創建一個測試項目。
  • 要下載報告 jar 文件的範圍。
  • 將範圍報告 jar 文件添加到項目中。
  • 創建了一個已實現的類。

生成範圍報告的步驟

  • 通過導入一個jar文件extentreports-java-2.41.2.jar,可以在selenium的WebDriver中生成範圍報告。 下載後,jar 文件內容將被提取到一個目錄中。
  • 從下載的 ZIP 文件中提取的 Jar 文件將被添加到構建項目中。 使用選項構建路徑 -> 配置構建路徑。
  • 為通過以下代碼報告的範圍新創建了一個 Java 類。

資源

代碼說明

使用 startTest 方法,測試執行開始。 範圍報告的對像被初始化。 範圍報告對象使用任何用戶定義的路徑作為傳遞給它的參數。

@beforeclass:代碼演示了範圍報告的使用。

@test:通過此類自動執行以下操作:

  • 通過 URL www.google.com打開 chrome 瀏覽器
  • 頁面標題將在打開後使用預期的值進行驗證。
  • 測試案例的狀態將使用範圍報告日誌方法記錄為 PASS 或 FAIL。

@afterclass:用於執行測試後置條件的代碼包含在此類中。 它包括測試結束或報告刷新的代碼。 如果不使用方法 flush(),將不會生成selenium 中的範圍報告。

在範圍報告中捕獲屏幕截圖

1.通過捕獲的方法

  • 在測試期間使用屏幕截圖有幾個好處。
  • 如果軟件開始出現錯誤,那麼測試人員可以通過觀察屏幕截圖來識別問題。
  • 因此,如果測試執行遇到任何問題,屏幕截圖將允許測試人員調試測試腳本。
  • 僅應在測試失敗期間捕獲屏幕截圖,因為捕獲會消耗更多內存。
  • 以下用於捕獲屏幕截圖的代碼取自

資源

2. 代碼說明

  • 當前的 selenium WebDriver 通過 getScreenShotAs() 方法捕獲為屏幕截圖。 然後以各種形式的輸出存儲。

文件 scrFile = ((TakesScreenshot) 驅動程序).getScreenshotAs(OutputType.File);

  • 文件的一個對象通過getScreenShotAs 方法返回並存儲在文件的一個變量中。 使用此方法時,必須強制轉換 Web 驅動程序的實例以進行截圖。

File Dest = new File(“scr/../Errimages/” + System.currentTimeMillis()+ “.png”);

  • 通過上述代碼在文件夾“src”中創建了一個名為“ErrImages”的文件夾。 文件保存在創建的文件夾中,文件名作為當前系統的時間。

字符串 errflpath = Dest,getAbsolutePath();

Fileutils.copyFile(scrFile, Dest);

返迴路徑;

  • 生成的錯誤圖像被複製到目標文件夾中。

3.日誌方法

  • log 方法中使用了內置方法。 Extent 類的 addScreenCapture 用於捕獲屏幕截圖,然後附加到生成的範圍報告中。

test.log(LogStatus.Fail,test.addScreenCapture(capture(driver))+ “測試失敗”);

範圍報告的優勢

  • 範圍報告的使用很容易。
  • 餅圖用於顯示結果。
  • 提供了測試通過案例的百分比。
  • 以自然的方式添加環境細節的能力。
  • 與其他報告相比,範圍報告提供了定制服務。
  • 通過 extent API 可以生成更多的交互式報告。 交互式報告可能採用圖形視圖、每個測試步驟中的屏幕截圖、儀表板視圖和可以通過電子郵件發送的報告的形式。
  • 可以與 JUnit、 TestNG和 NUnit 框架集成
  • 通過為所有並行運行生成單個報告,可以並行執行測試運行。
  • 可以配置報告。
  • 對於每個測試用例的執行,都會顯示花費的時間。
  • 可以輕鬆跟踪單個套件中多個測試用例的運行。
  • 根據測試報告,可以過濾掉結果。 此外,可以通過通過/失敗/信息選項過濾掉逐步結果。
  • 為回歸/功能等類別提供報告分類。
  • 測試步驟的日誌可以添加到報告中。

Selenium 中的擴展報告示例

舉個例子讓你了解extent report maven的生成過程。

第 1 步:將創建一個 maven 項目和一個類 BasicExtentReport.java 並添加此處可用的代碼

  • 從“ExtentHtmlReporter”類生成一個 HTML 獨立文件。
  • 此類接受“ExtentHtmlReporter(java.io.File)”和路徑“ExtentHtmlReporter(java.lang.String filePath)”。
  • 傳遞文件路徑以保存報告。
  • 'ExtentHtmlReporter' 類的方法 config() 允許各種配置選項。 可以通過代碼更改項目以更改範圍報告的外觀,包括時間戳、報告名稱等。
  • 測試的每個步驟的狀態由“AfterMethod”報告,從而更新測試狀態,如通過、失敗、跳過等。在發生任何錯誤時,會生成一條消息以提供信息。 它是通過“result.getThrowable()”完成的。
  • 狀態標籤是使用 MarkupHelper 類創建的,該類也為報告狀態著色。

第 2 步:通過創建 testng.xml 文件來傳遞瀏覽器的操作系統和參數。 該代碼可在上述網站上找到。

第三步:在 pom.cml 文件中添加另一個代碼。

Step4:運行程序生成結果報告

資源

要查看失敗報告,請單擊失敗的測試。 這將顯示測試狀態以及測試失敗的原因。

與範圍報告相關的一些其他事項是:

  • 為了美觀,可以更改報表中存在的主題。
  • 根據用戶的方便,儀表板視圖可以隱藏或顯示。
  • 在運行多個測試的情況下,可以逐步搜索一個測試用例。
  • 向用戶顯示運行測試所用的總時間,包括開始時間和結束時間。
  • 報告中存在其他過濾器。 可以根據測試的狀態過濾結果,例如通過的測試、失敗的測試或僅存在信息的測試用例。

從世界頂級大學在線學習軟件課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

對於任何可定制報告的生成,範圍報告是最好的方法。 作為一個易於使用 selenium 配置的開源庫,範圍報告無疑已成為所有自動化測試人員的最佳選擇。 本文簡要討論了範圍報告、如何生成它們以及它們的用處。 可以通過作為生成範圍報告的基礎的軟件編程知識來獲得好處。

如果您願意學習和探索軟件編程的好處,請查看upGrad提供的軟件開發執行 PG 計劃 - 全棧開發專業化課程。 這是一門專為 21 至 45 歲年齡段的入門級專業人士設計的課程。 該課程提供了一個在線講座和互動課程的平台,提供實踐經驗,為頂級行業的就業提供保證。 我們的團隊隨時為您解答任何疑問。

什麼是 Selenium 報表生成器?

Selenium Report Builder 或 Selenium IDE 是 Selenium 的 Firefox 插件,它有助於創建和編輯 Selenium 測試用例。 它使自動化過程更加高效,並減少了創建不同報告所需的工作量。 這是一種運行測試的舒適方式,並提供當前狀態的概述。 報告以各種格式生成,例如文本、PDF、CSV、HTML 等。

使用 Selenium 可以自動測試什麼?

Selenium 是一種用於自動化測試 Web 應用程序的工具,可用於回歸測試。 Selenium 可以自動化用戶在瀏覽器中可以執行的任何操作。 大多數網站都有某種功能,可以讓員工更輕鬆地完成訂購庫存、處理訂單、更新網站等任務。Selenium 可用於測試基於 Web 的應用程序和網站。 它是一種高級語言,支持各種編程語言,如 JAVA 和 C#。 Selenium 用於自動化瀏覽器,並為 Web 應用程序開發人員提供編寫自動化測試以針對 Web 應用程序運行的能力。

什麼是硒網格?

Selenium Grid 是一個允許跨多個瀏覽器(或其他網格節點)運行自動化測試的工具。 它允許同時使用多個配置(位置、瀏覽器、操作系統)和多個瀏覽器並行執行這些測試。 測試本身可以在無頭模式下運行,因此根本不需要任何 GUI。 Grid 提供異步作業執行,並能夠同時管理數百個作業。 因此,Selenium 網格是運行測試用例的中心輻射模型。 網格允許用戶匯集多個瀏覽器來運行單個測試用例。 設置完成後,它可用於按需或按計劃跨多台機器或瀏覽器運行測試。 Selenium Grid 可用於並行化測試執行、擴展測試和增加測試覆蓋率。