Cucumber - 報告



我們進行測試執行是為了瞭解產品的穩定性,無論是手動測試還是自動化測試,生成簡潔的報告來描述產品的穩定性都非常重要。因此,當我們使用 Cucumber 自動化測試場景時,瞭解如何更好地生成 Cucumber 測試報告至關重要。眾所周知,Cucumber 作為一個 BDD 框架,它本身並沒有花哨的報告機制。

為了實現這一點,我們需要將 Cucumber 與其他開源工具(如 Ant/JUnit)整合。這裡,我們將進一步舉例說明 JUnit,因為它支援 Java 語言。

讓我們詳細瞭解一下可用的、易於使用的不同報告格式:

Pretty 格式 (HTML 報告)

Pretty 格式以 HTML 格式生成 Cucumber 測試報告,即一個 HTML 檔案。這是最易讀的報告格式。它生成的報告與特性檔案相同,因此追蹤也更容易。此外,您可以指定測試執行後想要放置此報告的位置。它可以是:

  • 本地目錄 - 我們可以將報告的目標目錄指定為測試執行機器上的任何本地目錄。

  • 伺服器目錄 - 我們還可以將目標目錄指定為伺服器上任何公開可訪問的目錄。當我們希望客戶/利益相關者在任何時間點檢視測試結果時,這通常很有幫助。

示例

讓我們自動化一個 Pretty 格式的示例。

步驟 1 - 在 Eclipse 中建立一個名為 cucumberReport 的 Maven 專案。

步驟 2 - 在 src/test/java 下建立一個名為 CucumberReport 的包。

步驟 3 - 建立一個名為 cucumberReport.feature 的特性檔案。

將以下文字寫入檔案並儲存。

特性 - Cucumber 報告

#這是檢查透過測試用例的測試結果

場景:登入功能存在

已知我已開啟瀏覽器

當開啟 Facebook 網站時

則登入按鈕應該存在

#這是檢查失敗測試用例的測試結果

場景:忘記密碼存在

已知我已開啟瀏覽器

當開啟 Facebook 網站時

則忘記密碼連結應該存在

注意 - 這裡第一個場景將透過,而第二個場景將失敗。這樣我們就可以看到透過和失敗報告的樣子。

步驟 4 - 建立一個步驟定義檔案。

  • 選擇並右鍵單擊包大綱。

  • 單擊“新建”檔案。

  • 將檔名命名為 cucumberReport.java

  • 將以下文字寫入檔案並儲存。

package CucumberReport;
 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class cucumberReport { 
   WebDriver driver = null; 
	
   @Given("^I have open the browser$") 
   public void openBrowser() { 
      driver = new FirefoxDriver();
   } 
	
   @When("^I open Facebook website$") 
   public void goToFacebook() { 
      driver.navigate().to("https://#/"); 
   } 
	
   @Then("^Login button should exits$") 
   public void loginButton() { 
      if(driver.findElement(By.id("u_0_v")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else { 
         System.out.println("Test 1 Fail");
      }
   } 
	
   @Then("^Forgot password link should exist$") 
   public void forgotPWD() { 
      if(driver.findElement(By.id("")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else {
         System.out.println("Test 1 Fail");
      } 
   } 
}

步驟 5 - 建立一個執行器類檔案。

  • 在包內建立一個名為 runTest.java 的執行器類。

  • 編寫以下程式碼。儲存檔案。

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( 
   format = {"pretty", "html:target/Destination"} ) 
	
//Specifying pretty as a format option ensure that HTML report will be generated. 
//When we specify html:target/Destination - It will generate the HTML report 

inside the Destination folder, in the target folder of the maven project. 

public class runTest { }
  • 使用以下選項執行測試

    • 從包資源管理器中選擇 runTest.java 檔案。

    • 右鍵單擊並選擇選項 以...方式執行

    • 選擇 JUnit 測試。

執行此類檔案時,您將觀察到以下內容。

兩個場景將一個接一個地執行。

目標目錄內將建立一個名為 Destination 的資料夾。

Cucumber Json

報告將命名為“Index.html”。

使用 Web 瀏覽器開啟 Index.html。

您將看到以下影像中提到的報告:

Cucumber Report

它準確地突出了失敗場景的顏色。此外,您將看到該場景中失敗步驟的突出顯示。這使得除錯非常容易。

JSON 報告

到目前為止,我們已經看到 HTML 報告有多麼容易。但是,如果我們想將此報告資訊傳遞給任何其他應用程式,對於 HTML 報告來說,這有點棘手。這裡就需要另一種報告格式。JSON(JavaScript 物件表示法)是生成 Cucumber 測試報告的另一種格式。JSON 是一個包含許多以文字格式儲存的資訊的物件。JSON 報告為表格帶來了不同的價值。JSON 報告也可以用作要在不同伺服器之間傳輸的資訊有效載荷。此外,它可以用作網頁的顯示方式。簡而言之,JSON 報告可以被其他應用程式使用。

什麼是有效載荷資訊?當資料透過網際網路傳送時,每個傳輸單元都包含報頭資訊和正在傳送的實際資料。報頭標識資料包的源和目標,而實際資料稱為有效載荷。為了生成 JSON 報告,我們只需要更改執行器檔案。

  • 更改執行器檔案中的格式選項,如下所示。

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( format={"json:target/Destination/cucumber.json"}) 

//When we specify json:target/Destination/cucumber.json - It will generate the JSON  
report inside the Destination folder, in the target folder of the maven project.

public class runTest {}
  • 使用以下選項執行測試:

    • 從包資源管理器中選擇 runTest.java 檔案。

    • 右鍵單擊並選擇選項 以...方式執行

    • 選擇 JUnit 測試。

  • 執行此類檔案時,您將觀察到以下內容。

    • 兩個場景將一個接一個地執行。

Folder Name
  • 報告將命名為 cucumber.json(如執行器類中所提供)。

  • 使用文字編輯器開啟 cucumber.json 檔案。

  • 新增換行符後,您將看到以下螢幕截圖中提到的報告:

Text Editor

注意 - 與 HTML 報告格式相比,JSON 的可讀性較差。

廣告
© . All rights reserved.