[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report

✅Cài đặt Cucumber Report
✅Cài đặt Allure Report trong Cucumber TestNG

✅ Cài đặt Cucumber Report

Bản chất Cucumber ReportHTML giống với Extent Report. Nên cũng rất dễ dùng để di chuyển đi nơi khác.

Để sử dụng Cucumber report thì đầu tiên chúng ta thêm phần cấu hình thư viện Cucumber Report vào trong pom.xml

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.11.0</version>
			<configuration>
				<source>11</source>
				<target>11</target>
			</configuration>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<version>3.0.0</version>
			<configuration>
				<suiteXmlFiles>
					<!-- Call Suite path -->
					<suiteXmlFile>src/test/resources/suites/SuiteLoginCMS.xml</suiteXmlFile>
				</suiteXmlFiles>
				<testFailureIgnore>true</testFailureIgnore>
			</configuration>
		</plugin>
		<plugin>
			<!--https://mvnrepository.com/artifact/net.masterthought/maven-cucumber-reporting-->
			<groupId>net.masterthought</groupId>
			<artifactId>maven-cucumber-reporting</artifactId>
			<version>5.7.5</version>
			<executions>
				<execution>
					<id>execution</id>
					<phase>test</phase>
					<goals>
						<goal>generate</goal>
					</goals>
					<configuration>
						<projectName>CucumberTestNG022023</projectName>
						<skip>false</skip>
						<outputDirectory>reports/CucumberReports/cucumber-reports</outputDirectory>
						<inputDirectory>target/cucumber-reports</inputDirectory>
						<jsonFiles>
							<param>**/*.json</param>
						</jsonFiles>
					</configuration>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

<outputDirectory>reports/CucumberReports/cucumber-reports</outputDirectory> Đây là đường dẫn xuất ra Report sau khi chạy test

<inputDirectory>target/cucumber-reports</inputDirectory> Đây là đường dẫn nạp data vào cho report khi chạy test


Tiếp theo thêm phần đường dẫn chỉ định để xuất ra report trong Test Runner cho từng class cụ thể

"html:target/cucumber-reports/TestRunnerCategoryCMS.html",
"json:target/cucumber-reports/TestRunnerCategoryCMS.json"


[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester
[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Chú ý là đặt tên file phân biệt giữa các class kẻo nó bị ghi đè. Nên góp ý là các bạn lấy tên class đặt cho tên file HTML và JSON xuất ra ở mỗi class là không bị trùng.

Các bạn chú ý cái đường dẫn trỏ đến file suite xml để gọi cái class Test Runner trong pom.xml

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Cuối cùng là chạy test trực tiếp trong maven với lệnh  mvn clean test 

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Sau khi chạy xong thì Cucumber Report xuất ra đúng folder mà mình chỉ định bên trên

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester
[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Tại đây các bạn mở report trực tiếp trong IntelliJ IDEA hoặc mở thư mục source ra tìm file HTML của Cucumber Report chạy đều được.

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester
[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Các bạn có thể click vào link từng Test Case name để xem detail bên trong

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Yeah vậy là xong phần Cucumber Report cơ bản rồi đấy.


🔆 Execute trực tiếp nhiều file class Test Runner không cần chạy thông qua suite XML

Này nghĩa là Cucumber Framework tự động tìm tất cả các file class Test Runner mà có tên đoạn đầu chứa TestRunner để thực thi hết

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester
Lưu ý: khi sử dụng trực tiếp file class TestRunner thì comment cái suite xml lại kẻo nó bị duplicated.

 

✅ Cài đặt Allure Report trong Cucumber

Allure report trong TestNG trước đây chúng ta đã cài đặt dùng nhiều rồi nên cũng biết Allure report là gì. Ở đây An chỉ cho các bạn cìa nó vào trong Cucumber vì trong Cucumber Framework thì cách thức triển khai report có vài chổ khác so với bên TestNG Framework.

Đầu tiên add thư viện Allure Cucumber Report vào trong file pom.xml

<!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-cucumber7-jvm -->
<dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-cucumber7-jvm</artifactId>
    <version>2.22.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-testng -->
<dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-testng</artifactId>
    <version>2.22.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-attachments -->
<dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-attachments</artifactId>
    <version>2.22.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.19</version>
</dependency>


Tiếp theo thêm đoạn cấu hình đường dẫn để xuất ra Allure report trong phần plugin maven-surefire-plugin như bên dưới

<!-- Setup Allure report -->
<argLine>
    -Dfile.encoding=UTF-8
    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/1.9.19/aspectjweaver-1.9.19.jar"
</argLine>
<reportsDirectory>target/test-output</reportsDirectory>
<systemPropertyVariables>
    <allure.results.directory>target/allure-results</allure.results.directory>
</systemPropertyVariables>


[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Tiếp theo thêm đoạn config Allure report trong các class Test Runner giống như Cucumber report bên trên

"io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm"

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester
[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

Sau cùng là thực thi test và mở Allure report như trước đây với lệnh:

allure serve target/allure-results


[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester
[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

🔆 Đính kèm screenshot vào report khi test case Fail

Các bạn vào chổ class Hook tìm đến @AfterStep để thêm đoạn chụp màn hình vào là xong

if (scenario.isFailed()) {
    final byte[] screenshot = ((TakesScreenshot) DriverManager.getDriver()).getScreenshotAs(OutputType.BYTES);
    scenario.attach(screenshot, "image/png", "Screenshot Failed");
}

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester

[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester
[Cucumber TestNG] Bài 13: Cài đặt Cucumber Report và Allure Report | Anh Tester


Yeah vậy là xong phần Allure report trong Cucumber rồi. Chúc các bạn làm suôn sẻ nhé 😁

Nhìn chung thì An đánh giá cao Allure report hơn là Cucumber report. Nó chi tiết đến tận các bước auto của Selenium.

  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu