📅  最后修改于: 2020-12-07 04:53:58             🧑  作者: Mango
我们进行测试执行是为了了解产品的稳定性,因此,无论是手动测试还是自动测试,生成简明的报告以描述产品的稳定性非常重要。因此,当我们使用Cucumber自动化测试场景时,必须知道如何更好地生成Cucumber测试报告。我们知道Cucumber是一个BDD框架,它没有花哨的报告机制。
为了实现这一目标,我们需要将Cucumber与其他开源工具(例如Ant / Junit)集成。在这里,我们将进一步以JUnit为例,因为它提供了对Java语言的支持。
我们来看看不同的报告格式的详细信息,这些报告格式可用且易于使用-
Pretty Format以HTML格式(即HTML文件)生成Cucumber测试报告。这是最易读的报告格式。它以与功能文件相同的方式生成报告,因此跟踪也很容易。另外,您可以指定在执行测试后希望放置此报告的位置。它可以是-
本地目录-我们可以将报告的目标目录指定为将运行测试的计算机的任何本地目录。
服务器目录-我们还有一项规定,可以将目标目录指定为服务器上任何可公开访问的目录。当我们希望我们的客户/利益相关者在任何给定时间点查看测试结果时,这通常会有所帮助。
让我们自动化一个漂亮格式的示例。
步骤1-在Eclipse中创建一个名为cucumberReport的Maven项目。
第2步-在src / test / java下创建一个名为CucumberReport的包
步骤3-创建一个名为cucumberReport.feature的功能文件
在文件中写入以下文本并保存。
功能-黄瓜报告
#这是检查通过测试用例的测试结果
场景:存在登录功能
鉴于我已经打开浏览器
当我打开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的文件夹。
该报告将在那里命名为“ Index.html”。
使用网络浏览器打开Index.html。
您将看到下图中提到的报告-
它恰好突出了失败方案的颜色。此外,您将在该方案中看到失败步骤的突出显示。这使得调试非常容易。
到目前为止,我们已经看到了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 (在runner类中提供)。
使用文本编辑器打开cumul.json文件。
放置换行符后,您将在以下屏幕截图中看到报告:
注意-与HTML报告格式相比,JSON的可读性较差。