黄瓜 – 报告
黄瓜 – 报告
我们进行测试执行是为了了解产品的稳定性,因此无论是手动测试还是自动化测试,生成能够描述产品稳定性的简明报告是非常重要的。因此,当我们使用 Cucumber 自动化我们的测试场景时,有必要知道如何更好地生成我们的 Cucumber 测试报告。正如我们所知,Cucumber 是一个 BDD 框架,它没有花哨的报告机制。
为了实现这一点,我们需要将 Cucumber 与 Ant/Junit 等其他开源工具集成。在这里,我们将进一步举例说明 JUnit,因为它提供对 Java 语言的支持。
让我们来看看不同报告格式的详细信息,这些报告格式可用且易于使用 –
漂亮的格式(HTML 报告)
Pretty Format 生成 HTML 格式的 Cucumber 测试报告,即一个 HTML 文件。它是最易读的报告格式。它以与生成特征文件相同的方式生成报告,因此跟踪也变得容易。此外,您可以指定您希望在测试执行后放置此报告的位置。它可以是 –
-
本地目录– 我们可以将报告的目标目录指定为运行测试的机器的任何本地目录。
-
服务器目录– 我们还提供了将目标目录指定为服务器上可公开访问的任何目录的规定。当我们希望我们的客户/利益相关者在任何给定时间点查看测试结果时,这通常会有所帮助。
例子
让我们自动化一个漂亮格式的例子。
第 1 步–在 Eclipse 中创建一个名为CucumberReport的 Maven 项目。
第 2 步–在src/test/java下创建一个名为CucumberReport的包
Step 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文件。
-
右键单击并选择选项Run as。
-
选择 JUnit 测试。
-
运行该类文件时,您将观察到以下情况。
这两个场景都将一一执行。
将在目标目录中创建一个名为 Destination 的文件夹。
该报告将在那里命名为“Index.html”。
使用网络浏览器打开 Index.html。
您将看到下图中提到的报告 –
它准确地突出了失败场景的颜色。此外,您将在该场景中看到失败步骤的突出显示。这使得调试非常容易。
JSON 报告
到目前为止,我们已经看到 HTML 报告是多么简单。但是,如果我们想将此报告信息传递给任何其他应用程序,在 HTML 报告的情况下这有点棘手。这就需要另一种报告格式。JSON-Java 脚本对象表示法是另一种生成 Cucumber 测试报告的格式。JSON 是一个包含大量以文本格式存储的信息的对象。JSON 报告为表带来了不同的值。JSON 报告还可以用作要在不同服务器之间传输的信息的有效负载。此外,它可以用于显示为网页。简而言之,其他应用程序可以使用 JSON 报告。
什么是有效载荷信息?当通过 Internet 发送数据时,传输的每个单元都包含标头信息和正在发送的实际数据。标头标识数据包的来源和目的地,而实际数据称为有效载荷。为了生成 JSON 报告,我们只需要在 runner 文件中进行更改。
-
如下更改运行文件中的格式选项。
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文件。
-
右键单击并选择选项Run as。
-
选择 JUnit 测试。
-
-
运行该类文件时,您将观察到以下情况。
-
这两个场景都将一一执行。
-
-
该报告将在那里命名为cucumber.json(在runner 类中提供)。
-
使用文本编辑器打开cucumber.json文件。
-
放置换行符后,您将看到以下屏幕截图中提到的报告 –
注意– 与 HTML 报告格式相比,JSON 的可读性较差。