- Cucumber 教程
- Cucumber - 首頁
- Cucumber - 概述
- Cucumber - 環境
- Cucumber - Gherkins (業務領域特定語言)
- Cucumber - 特性
- Cucumber - 場景
- Cucumber - 註解
- Cucumber - 場景大綱
- Cucumber - 標籤
- Cucumber - 資料表
- Cucumber - 註釋
- Cucumber - 鉤子函式
- Cucumber - 命令列選項
- Cucumber - JUnit 執行器
- Cucumber - 報告
- Cucumber - 除錯
- Cucumber - Java 測試
- Cucumber - Ruby 測試
- Cucumber 有用資源
- Cucumber - 快速指南
- Cucumber - 有用資源
- Cucumber - 討論
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 的資料夾。
報告將命名為“Index.html”。
使用 Web 瀏覽器開啟 Index.html。
您將看到以下影像中提到的報告:
它準確地突出了失敗場景的顏色。此外,您將看到該場景中失敗步驟的突出顯示。這使得除錯非常容易。
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 測試。
執行此類檔案時,您將觀察到以下內容。
兩個場景將一個接一個地執行。
報告將命名為 cucumber.json(如執行器類中所提供)。
使用文字編輯器開啟 cucumber.json 檔案。
新增換行符後,您將看到以下螢幕截圖中提到的報告:
注意 - 與 HTML 報告格式相比,JSON 的可讀性較差。