Cucumber - 报告

为了理解产品的稳定性,我们会进行测试执行,因此无论是手动测试还是自动测试,生成可以描述产品稳定性的简明报告非常重要.因此,虽然我们使用Cucumber自动化我们的测试场景,但必须知道我们如何更好地生成我们的Cucumber测试报告.我们知道Cucumber是一个BDD框架,它没有一个奇特的报告机制.

为了实现这一点,我们需要将Cucumber与其他开源工具如Ant/Junit集成.在这里,我们将进一步讨论JUnit,因为它提供了对Java语言的支持.

让我们看看不同报告格式的细节,这些格式可用且易于使用 :

漂亮格式(HTML报告)

Pretty Format以HTML格式生成Cucumber测试报告,即HTML文件.它是最易读的报告格式.它以与特征文件相同的方式生成报告,因此跟踪也很容易.此外,您可以指定在测试执行后放置此报告的位置.它可以是 :

  • 本地目录 : 我们可以将报告的目标目录指定为运行测试的机器的任何本地目录.

  • 服务器目录 : 此外,我们还规定将目标目录指定为服务器上的任何目录,该目录可公开访问.当我们希望我们的客户/利益相关者在任何给定的时间点查看测试结果时,这通常会有所帮助.

示例

让我们自动化一个漂亮格式的例子.

第1步 : 在Eclipse中创建一个名为 cucumberReport 的Maven项目.

第2步 : 在 src/test/java

下创建名为 CucumberReport 的包

步骤3 : 创建名为 cucumberReport.feature

的特征文件

在文件中写下以下文本并保存.

功能 : 黄瓜报告

#这是检查Pass测试用例的测试结果

场景:登录功能存在

鉴于我已打开浏览器

当我打开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://www.facebook.com/"); 
   } 
	
   @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".

使用网络浏览器打开Index.html.

您将看到下图中提到的报告 :

黄瓜报告

它正好突出了失败场景的颜色.此外,您将看到该场景中失败步骤的突出显示.这使得调试变得非常简单.

JSON报告

现在我们已经看到了HTML报告的简单程度.但是,如果我们想将此报告信息传递给任何其他应用程序,那么在HTML报告的情况下这很棘手.这需要另一种报告格式. JSON-Java脚本对象表示法是另一种生成Cucumber测试报告的格式. JSON是一个包含大量以文本格式存储的信息的对象. JSON报告为表格带来了不同的值. JSON报告还可以用作要在不同服务器之间传输的信息的有效负载.此外,它可以用于显示为网页.简而言之,JSON报告可以被其他应用程序使用.

什么是有效负载信息?当通过Internet发送数据时,每个传输的单元都包含两个头信息和发送的实际数据.标头标识数据包的源和目标,而实际数据称为有效负载.为了生成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的可读性较差.