Karate Framework là một công cụ mạnh mẽ giúp đơn giản hóa quá trình automation test, cung cấp một cách tiếp cận trực quan và dễ dàng để viết, chạy và báo cáo kết quả kiểm thử API.

Bài viết này sẽ hướng dẫn bạn cách thiết lập môi trường làm việc với Karate Framework bằng IntelliJ IDEA, sử dụng Maven hoặc Gradle, và thực thi kiểm thử trên nền tảng JUnit5. Bên cạnh đó, chúng ta cũng sẽ đi sâu vào cách viết kịch bản kiểm thử đầu tiên và tạo báo cáo kết quả chi tiết. Hãy cùng bắt đầu!
1) IntelliJ IDEA
IntelliJ IDEA là một Môi trường Phát triển Tích hợp (IDE) phổ biến được sử dụng trong lập trình Java. Vì Karate được viết bằng Java, IntelliJ là lựa chọn phù hợp để kiểm thử API với Karate. Một lý do khác khiến IntelliJ được ưa chuộng là nó cung cấp nhiều tính năng hỗ trợ lập trình hiệu quả và có cả phiên bản miễn phí (Community Edition).
Lưu ý: Bạn cũng có thể sử dụng Eclipse, Visual Studio hoặc các trình soạn thảo khác có sẵn trên thị trường.
2) Maven
Maven là một công cụ tự động hóa xây dựng được sử dụng chủ yếu để phát triển các dự án Java. Đây là một trong những cách thiết lập môi trường Karate và viết mã kiểm thử.
Trong Maven, chúng ta sẽ sử dụng các dependencies sau trong tệp pom.xml
:
<dependencies>
<dependency>
<groupId>io.karatelabs</groupId>
<artifactId>karate-junit5</artifactId>
<version>1.5.0.RC5</version>
<scope>test</scope>
</dependency>
</dependencies>
Lưu ý: Bạn có thể tìm phiên bản mới nhất trong kho Maven repository.
3) Gradle
Gradle là một lựa chọn thay thế cho Maven với sự linh hoạt và dễ sử dụng hơn. Nếu ứng dụng có yêu cầu về quản lý module và plugin, Gradle là một công cụ hữu ích.
Mã thiết lập Gradle:
testImplementation 'io.karatelabs:karate-junit5:1.5.0.RC5'
Lưu ý: Bạn có thể sử dụng Maven hoặc Gradle.
4) Thiết Lập Môi Trường Java
Bạn cần thiết lập môi trường JDK 17 trở lên để bắt đầu viết script kiểm thử với Karate Framework.
Cấu Trúc Kịch Bản Kiểm Thử Karate
Kịch bản kiểm thử Karate có phần mở rộng .feature
, kế thừa từ Cucumber. Cấu trúc file theo chuẩn Java cũng được chấp nhận. Tuy nhiên, theo hướng dẫn từ Karate, bạn nên giữ cả file Java và non-Java trong cùng một thư mục.
Bạn có thể tùy chỉnh pom.xml
như sau để lưu trữ các file kiểm thử trong src/test/java
:
<build>
<testResources>
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
...
</plugins>
</build>
Viết Kịch Bản Kiểm Thử Karate Đầu Tiên
Bước 1: Tạo Dự Án Maven Trong IntelliJ IDEA
- Mở IntelliJ IDEA
- Chọn File > New Project
- Chọn Maven và thiết lập Group ID:
Karate
, Artifact ID:KarateTestScriptsSample
- Nhấn Finish để hoàn tất.
Bước 2: Thêm Dependencies
Mở tệp pom.xml
và thêm đoạn mã sau:
<dependency>
<groupId>io.karatelabs</groupId>
<artifactId>karate-junit5</artifactId>
<version>1.5.0.RC5</version>
<scope>test</scope>
</dependency>
Bước 3: Viết Tệp .feature
- Trong thư mục
src/test/java
, tạo tệpuserDetails.feature
- Viết nội dung sau:

Feature: fetching User Details
Scenario: testing the get call for User Details
Given url 'https://reqres.in/api/users/2'
When method GET
Then status 200
Bước 4: Viết Tệp TestRunner.java
- Trong thư mục
src/test/java
, tạo tệpTestRunner.java
- Viết nội dung sau:
import com.intuit.karate.junit5.Karate;
class TestRunner {
@Karate.Test
Karate testAll() {
return Karate.run().relativeTo(getClass());
}
}
Bước 5: Chạy Kiểm Thử
- Nhấn chuột phải vào
TestRunner.java
- Chọn Run ‘TestRunner’
- Quan sát kết quả kiểm thử
Report HTML
Karate cung cấp báo cáo HTML về kết quả kiểm thử. Báo cáo này có thể được tìm thấy tại target/surefire-reports
.
Trong bài viết này, chúng ta đã tìm hiểu về kiểm thử API, các công cụ cần thiết và cách thiết lập môi trường Karate Framework. Chúng ta cũng đã viết kịch bản kiểm thử đầu tiên bằng Karate Framework theo từng bước chi tiết.
Hy vọng bài viết này sẽ hữu ích cho những người mới bắt đầu làm quen với kiểm thử API bằng Karate Framework!
2 comments
Ad có thể ra thêm bài viết cách sử dụng framework này cho automation test UI web app không ạ?
Thanks bạn đã quan tâm, sắp tới mình sẽ viết tiếp cách sử dụng Karate để automate web UI, hãy cùng follow nhé!