开发手册 欢迎您!
软件开发者资料库

Cucumber - 报告

Cucumber 报告 - 从概述,环境,Gherkins,功能,场景,注释,场景大纲,标签,数据表,评论,钩子,命令行选项,JUnit运行器,报告,调试,Java测试,Ruby测试开始学习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的可读性较差.