Hướng dẫn kiểm thử API REST Assured

⚡ Tóm tắt thông minh

REST Assured tự khẳng định mình là một JavaThư viện mã nguồn mở dựa trên API REST giúp đơn giản hóa việc kiểm thử tự động hóa API REST. Khung phần mềm này cho phép các kỹ sư chất lượng xác thực các phản hồi JSON phức tạp, tiêu đề, mã trạng thái và thời gian phản hồi bằng cú pháp kiểu BDD rõ ràng với khả năng tích hợp Maven liền mạch.

  • ⚙️ Foundation Thành lập: Thiết lập Java, Eclipsevà các phụ thuộc Maven trước khi viết kịch bản kiểm thử REST Assured đầu tiên của bạn.
  • 📐 Nắm vững cú pháp: Áp dụng mô hình Given-When-Then để thể hiện các yêu cầu API một cách dễ đọc và thân thiện với người dùng nghiệp vụ.
  • 🔍 Xác thực chi tiết: ExtracThông tin phản hồi bao gồm nội dung, mã trạng thái, tiêu đề, loại nội dung và thời gian thông qua một chuỗi xử lý liền mạch.
  • 🧩 Điều hướng đường đi: Duyệt qua các giá trị JSON lồng nhau bằng cách sử dụng ký hiệu dấu chấm tương tự như XPath trong Selenium Để đưa ra những khẳng định chính xác.
  • 🛡️ Tích hợp CI/CD: Kết hợp REST Assured với TestNG or JUnit Tích hợp việc kiểm tra API trực tiếp vào các quy trình xây dựng tự động.

Hướng dẫn REST Assured

Yên tâm là gì?

Phần còn lại được đảm bảo cho phép bạn kiểm tra REST API bằng thư viện java và tích hợp tốt với Maven. Nó có các kỹ thuật khớp lệnh rất hiệu quả, do đó việc khẳng định kết quả mong đợi của bạn cũng khá đơn giản. Rest Assured có các phương pháp để lấy dữ liệu từ hầu hết mọi phần của yêu cầu và phản hồi bất kể cấu trúc JSON phức tạp như thế nào.

Đối với cộng đồng thử nghiệm, Kiểm thử tự động API vẫn còn mới và hẹp. Sự phức tạp của JSON khiến việc kiểm thử API chưa được khám phá. Nhưng điều đó không làm cho nó kém quan trọng hơn trong quá trình thử nghiệm. Khung Rest Assured.io đã làm cho nó trở nên rất đơn giản bằng cách sử dụng các kiến ​​thức cơ bản về java cốt lõi, khiến nó trở thành một điều rất đáng học.

Tại sao cần Rest-Assured?

Hãy tưởng tượng bạn mở... Google Xem bản đồ và tìm kiếm địa điểm bạn muốn đến. Bạn sẽ ngay lập tức thấy các nhà hàng gần đó, các lựa chọn di chuyển từ các nhà cung cấp dịch vụ du lịch hàng đầu và nhiều lựa chọn khác ngay trong tầm tay. Chúng ta đều biết rằng những điều này không phải lúc nào cũng khả thi. Google sản phẩm, vậy thì như thế nào Google Liệu nó có thể hiển thị chúng không? Nó sử dụng các API được công khai của các nhà cung cấp này. Bây giờ, nếu bạn được yêu cầu kiểm tra loại thiết lập này, ngay cả trước khi giao diện người dùng được xây dựng hoặc đang trong quá trình phát triển, việc kiểm thử API trở nên cực kỳ quan trọng. Việc kiểm thử chúng nhiều lần với các tổ hợp dữ liệu khác nhau khiến nó trở thành một trường hợp rất phù hợp để tự động hóa.

Trước đây, các nhóm đã sử dụng các ngôn ngữ động như... Groovy và Ruby để đạt được điều này, và đó là một thách thức. Do đó, kiểm thử API không được các chuyên gia kiểm thử chức năng khám phá rộng rãi.

Tuy nhiên, với Rest Assured, việc kiểm thử tự động các API và gửi các yêu cầu HTTPS đơn giản với các tùy chỉnh thân thiện với người dùng trở nên dễ dàng hơn nếu người dùng có kiến ​​thức cơ bản về lập trình. JavaNó rất hữu ích cho việc hiểu về kiểm thử API và kiểm thử tích hợp. Rest Assured mang lại sự tự tin mạnh mẽ về phía máy chủ, trong khi người kiểm thử giao diện người dùng có thể tập trung vào giao diện và các hoạt động phía máy khách. Rest Assured là mã nguồn mở, và việc liên tục bổ sung các phương thức và thư viện đã khiến nó trở thành lựa chọn tuyệt vời cho tự động hóa API.

REST Assured so với Postman: Sự khác biệt chính

Cả REST Assured và Postman Mỗi công cụ đều có chức năng xác thực API REST, nhưng mỗi công cụ lại phù hợp với một giai đoạn khác nhau trong chu kỳ kiểm thử. Việc lựa chọn công cụ phù hợp phụ thuộc vào kỹ năng của nhóm, phạm vi dự án và nhu cầu tích hợp của bạn.

Yếu tố REST đảm bảo Postman
Kiểu Java thư viện dành cho tự động hóa dựa trên mã Ứng dụng khách API dựa trên giao diện đồ họa người dùng (GUI) với hỗ trợ lập trình kịch bản.
Trường hợp sử dụng tốt nhất Các quy trình tích hợp liên tục và bộ kiểm thử hồi quy Khám phá thủ công và kiểm tra API nhanh chóng
Yêu cầu kỹ năng Trung tâm Java kiến thức cần thiết Lập trình tối thiểu; sử dụng JavaĐoạn mã lệnh
Báo cáo Tích hợp với TestNG, JUnitvà Allure Tóm tắt quá trình chạy tích hợp sẵn thông qua Newman CLI

Nhiều đội sử dụng Postman cho nguyên mẫu ban đầuping và chuyển sang REST Assured để kiểm thử hồi quy tự động sau khi API được cấu hình.tract ổn định.

Cách thiết lập Rest Assured.io với Eclipse

Việc thiết lập REST Assured bao gồm ba yếu tố phụ thuộc cốt lõi: JavaBạn cần một IDE và Maven. Hãy làm theo các bước dưới đây để tránh lỗi khi biên dịch sau này.

Bước 1) Cài đặt Java. Tham khảo cái này hướng dẫn

Bước 2) Tải xuống IDE để bắt đầu: nhật thực

Bước 3) Cài đặt Maven và thiết lập eclipse của bạn. Tham khảo đây.

Thiết lập yên tâm

  1. Hãy tạo một dự án Maven trong IDE của bạn. Chúng tôi đang sử dụng IntelliJ, nhưng bạn sẽ có cấu trúc tương tự trên bất kỳ IDE nào bạn đang dùng.
  2. Mở tệp POM.xml của bạn.

Cấu trúc dự án cho thiết lập REST Assured Maven

Cấu trúc dự án cho không gian làm việc Maven được đảm bảo bởi REST

Dành cho Rest Assured.io: Dành cho Java phiên bản < 9 người dùng:

Thêm phần phụ thuộc bên dưới vào POM.xml của bạn:

<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-path</artifactId>
<version>4.2.0</version>
<scope>test</scope>
</dependency>


<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>xml-path</artifactId>
<version>4.2.0</version>
<scope>test</scope>
</dependency>


<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>4.2.0</version>
<scope>test</scope>
</dependency>

Dành cho Rest Assured.io: Dành cho Java Người dùng phiên bản 9 trở lên:

<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured-all</artifactId>
<version>4.2.0</version>
<scope>test</scope>
</dependency>

Xử lý Sự cố:

Trong trường hợp bạn gặp lỗi và không chắc chắn liệu các phần phụ thuộc đã được tải xuống đúng cách hay chưa, hãy làm theo các bước sau:

  1. Thực hiện lệnh Maven build để nhập tất cả các thư viện phụ thuộc. Bạn có thể tìm thấy hướng dẫn về thiết lập Maven tại đây. Guru99.
  2. Nếu lỗi vẫn tiếp diễn, hãy chạy lệnh Maven clean tiếp theo là Maven install. Quá trình biên dịch sẽ hoàn tất mà không gặp lỗi.
  3. Thêm các lệnh nhập khẩu bên dưới vào tệp của bạn. Java và xác nhận không có lỗi biên dịch nào.
import io.restassured.RestAssured.*;
import io.restassured.matcher.RestAssuredMatchers.*;
import org.hamcrest.Matchers.*;

Tập lệnh Rest Assured đơn giản đầu tiên

Sau khi thiết lập các thư viện phụ thuộc, bạn có thể bắt đầu viết kịch bản đầu tiên của mình. Khung phần mềm này tuân theo phong cách Phát triển hướng hành vi (BDD), dễ đọc như tiếng Anh.

Cú pháp:

Cú pháp của Rest Assured.io là phần dễ đọc nhất của framework, vì nó rất giống với BDD và dễ hiểu.

Given().
        param("x", "y").
        header("z", "w").
when().
Method().
Then().
        statusCode(XXX).
        body("x", "y", equalTo("z"));

Giải thích:

Code Giải thích
Được cho() Từ khóa 'Given' cho phép bạn thiết lập một khung nền. Tại đây, bạn truyền các tiêu đề yêu cầu, tham số truy vấn và đường dẫn, nội dung và cookie. Điều này là tùy chọn nếu các mục này không cần thiết trong yêu cầu.
Khi() Từ khóa 'when' đánh dấu tiền đề của kịch bản bạn đang viết. Ví dụ: 'khi' bạn nhận/đăng/đặt một thứ gì đó, hãy làm một việc khác.
Phương pháp() Hãy thay thế thao tác này bằng bất kỳ thao tác CRUD nào (get/post/put/delete).
Sau đó() Các điều kiện khẳng định và so khớp của bạn sẽ được đặt ở đây.

Giờ bạn đã có thiết lập và một số kiến ​​thức cơ bản về cú pháp, hãy tạo bài kiểm tra đơn giản đầu tiên của chúng ta. Không sao nếu cấu trúc có vẻ mới lạ với bạn, khi bạn lập trình thêm và hiểu từng dòng, bạn sẽ nắm bắt được nó.

Bạn sẽ lấy gì?

Mở trình duyệt của bạn và nhấn – https://demo.guru99.com/V4/sinkministatement.php?CUSTOMER_ID=68195&PASSWORD=1234!&Account_No=1. Đảm bảo bạn nhìn thấy một cái gì đó như dưới đây.

Ví dụ về phản hồi API của tập lệnh Rest Assured

Ví dụ về phản hồi API được ghi lại bởi REST Assured

Trong trường hợp bạn gặp lỗi trên trình duyệt khi cố gắng nhận phản hồi cho yêu cầu:

  1. Hãy kiểm tra xem bạn đang sử dụng HTTPS hay HTTP. Trình duyệt của bạn có thể có các cài đặt chặn các trang web không an toàn.
  2. Kiểm tra xem có bất kỳ máy chủ proxy hoặc tường lửa nào đang chặn trình duyệt của bạn mở trang web hay không.

*Lưu ý – Bạn không sử dụng bất kỳ tiêu đề nào ở đây, không có nội dung, và không có cookie. Đó là một URLVà bạn đang lấy nội dung từ API chứ không phải đăng tải hoặc cập nhật nội dung hiện có. Điều đó biến nó thành một lệnh gọi GET. Hãy nhớ điều này để hiểu rõ hơn về bài kiểm tra đầu tiên của chúng ta.

Mục tiêu bài kiểm tra của bạn:

Mục tiêu của tập lệnh là in kết quả đầu ra trên bảng điều khiển IDE giống như kết quả bạn nhận được trên trình duyệt thông qua Rest Assured.

Hãy để chúng tôi mã hóa điều này với các bước dưới đây:

Nhận phản hồi nội dung

Bước 1) Tạo một lớp có tên là “myFirstRestAssuredClass”.

Bước 2) Hãy tạo một phương thức có tên là “getResponseBody”.

Bước 3) Tương tự như cấu trúc đã học trước đó gồm các từ "cho trước", "khi" và "sau đó", hãy nhập đoạn mã bên dưới:

được cho(). -> Không cần tiêu đề, không cần truy vấn hoặc thông số đường dẫn.

khi(). -> Không thiết lập điều kiện cụ thể.

lấy('https://demo.guru99.com/V4/sinkministatement.php?CUSTOMER_ID=68195&PASSWORD=1234!&Account_No=1'). -> chỉ có URL cần được cung cấp.

sau đó(). -> Không yêu cầu xác nhận cụ thể nào.

log().all() -> Sau khi nhận được toàn bộ phản hồi, hãy ghi nhật ký phản hồi, tiêu đề và về cơ bản là mọi thứ mà yêu cầu trả về cho bạn.

public static void getResponseBody(){
   given().when().get("https://demo.guru99.com/V4/sinkministatement.php?CUSTOMER_ID=68195&PASSWORD=1234!&Account_No=1").then().log()
  .all();

}

Bây giờ hãy chú ý rằng URL Đoạn mã được sử dụng dài dòng và khó đọc. Quan sát kỹ, bạn sẽ nhận thấy có 3 tham số truy vấn được sử dụng:

  1. ID khách hàng
  2. Mật khẩu
  3. Tài khoản_Không

Rest Assured giúp chúng ta truyền từng phần (truy vấn, đường dẫn, tham số tiêu đề) một cách riêng biệt, làm cho mã dễ đọc và dễ bảo trì hơn. Ngoài ra, chúng ta có thể tham số hóa dữ liệu từ một tệp bên ngoài khi cần thiết.

Để sử dụng tham số truy vấn, chúng ta quay lại định nghĩa cú pháp của mình và thấy rằng tất cả chúng đều được truyền như một phần của cú pháp đã cho.

public static void getResponseBody(){

   given().queryParam("CUSTOMER_ID","68195")
           .queryParam("PASSWORD","1234!")
           .queryParam("Account_No","1")
           .when().get("https://demo.guru99.com/V4/sinkministatement.php").then().log()
           .body();
}

**Lưu ý rằng chúng tôi đã sử dụng "body" thay vì "all"; điều này giúp chúng tôi giải thích rõ hơn.**tracKhông chỉ phần nội dung của câu trả lời.

Đầu ra:

Lấy mã trạng thái phản hồi

Phương pháp tiếp theo mà chúng ta sẽ lập trình là lấy mã trạng thái và thêm một câu lệnh kiểm tra để xác thực nó.

Bước 1) Hãy tạo một phương thức có tên là getResponseStatus().

Bước 2) Sử dụng cấu trúc yêu cầu tương tự được sử dụng ở trên. Sao chép và dán nó.

Bước 3) Thay vì ghi nhật ký, hãy sử dụng 'getStatus'.Code'Phương thức tích hợp sẵn của Rest Assured để lấy giá trị mã trạng thái.

Bước 4) Để khẳng định mã trạng thái của bạn là 200, hãy sử dụng từ khóa – assertThat().statusCode(hy vọngCode).

**Ghi chú - URL là một biến được sử dụng để đơn giản hóa vấn đề. URL chứa toàn bộ yêu cầu API URL.

public static void getResponseStatus(){
   int statusCode= given().queryParam("CUSTOMER_ID","68195")
           .queryParam("PASSWORD","1234!")
           .queryParam("Account_No","1") .when().get("https://demo.guru99.com/V4/sinkministatement.php").getStatusCode();
   System.out.println("The response status is "+statusCode);

   given().when().get(url).then().assertThat().statusCode(200);
}

Đầu ra:

Nhu cầu kinh doanh

Một trong những quy tắc cơ bản của tự động hóa là chúng ta phải đặt các điểm kiểm tra để quá trình kiểm tra chỉ tiến hành nếu đáp ứng tất cả các điều kiện bắt buộc. Trong thử nghiệm API, xác thực cơ bản nhất là kiểm tra xem mã trạng thái của yêu cầu có ở định dạng 2XX hay không.

Mã hoàn chỉnh, cho đến nay:

import java.util.ArrayList;
import static io.restassured.RestAssured.*;
import static java.util.concurrent.TimeUnit.MILLISECONDS;

public class myFirstRestAssuredClass {

   final static String url="https://demo.guru99.com/V4/sinkministatement.php?CUSTOMER_ID=68195&PASSWORD=1234!&Account_No=1";

   public static void main(String args[]) {

      getResponseBody();
     getResponseStatus();

; }

   //This will fetch the response body as is and log it. given and when are optional here
   public static void getResponseBody(){
       given().when().get(url).then().log()
      .all();

  given().queryParam("CUSTOMER_ID","68195")
               .queryParam("PASSWORD","1234!")
               .queryParam("Account_No","1") .when().get("https://demo.guru99.com/V4/sinkministatement.php").then().log().body();
   }

public static void getResponseStatus(){
   int statusCode= given().queryParam("CUSTOMER_ID","68195")
           .queryParam("PASSWORD","1234!")
           .queryParam("Account_No","1")
           .when().get("https://demo.guru99.com/V4/sinkministatement.php").getStatusCode();
   System.out.println("The response status is "+statusCode);

   given().when().get(url).then().assertThat().statusCode(200);
}

}

* Chú ý:

  1. Mã trạng thái 200 là phản hồi thành công trong trường hợp này. Đôi khi, bạn có thể cần yêu cầu thất bại, trong trường hợp đó bạn có thể sử dụng mã 4XX hoặc 5XX. Hãy thử thay đổi mã trạng thái bằng cách cung cấp các tham số không hợp lệ và kiểm tra.
  2. Khi chúng tôi xác nhận một điều kiện, sẽ không có bản in nào trên bảng điều khiển trừ khi có lỗi.

Tập lệnh để tìm nạp các phần khác nhau của phản hồi

Ngoài nội dung phản hồi và mã trạng thái, REST Assured còn hiển thị tiêu đề, thời gian phản hồi và loại nội dung thông qua các ví dụ có thể xâu chuỗi.traccác phương pháp Tor. Từ khóa 'ex'trac'T' là yếu tố thiết yếu để lấy được những bộ phận cụ thể này.

Tiêu đề

Rest Assured là một ngôn ngữ rất đơn giản và việc tìm nạp các tiêu đề cũng đơn giản như vậy. Tên phương thức là headers(). Giống như trước đây, chúng ta sẽ tạo một phương thức độc lập để thực hiện tương tự.

public static void getResponseHeaders(){
   System.out.println("The headers in the response "+
                   get(url).then().extract()
           .headers());
}

Xin lưu ý rằng 'given().when()' được bỏ qua ở đây, và dòng mã bắt đầu từ get(). Điều này là do không có điều kiện tiên quyết hoặc xác minh nào được thực hiện trước khi gửi yêu cầu và nhận phản hồi. Trong những trường hợp như vậy, việc sử dụng nó là tùy chọn.

Đầu ra:

Nhu cầu kinh doanh:

Thông thường, bạn sẽ cần sử dụng mã thông báo ủy quyền hoặc cookie phiên cho yêu cầu tiếp theo, và những thông tin này thường được trả về dưới dạng tiêu đề của phản hồi.

Thời gian đáp ứng

Để có thời gian cần thiết để tìm nạp phản hồi từ hệ thống phụ trợ hoặc các hệ thống hạ nguồn khác, Rest Assured cung cấp một phương thức có tên là 'timeIn' với một timeUnit phù hợp để có được thời gian cần thiết để trả về phản hồi.

public static void getResponseTime(){
  System.out.println("The time taken to fetch the response "+get(url)
         .timeIn(TimeUnit.MILLISECONDS) + " milliseconds");
}

Đầu ra:

Nhu cầu kinh doanh:

Một đặc điểm rất quan trọng khi kiểm thử API là thời gian phản hồi, đo lường hiệu suất của ứng dụng. Thời gian thực hiện cuộc gọi có thể nhanh hoặc chậm hơn tùy thuộc vào tốc độ internet của bạn, hiệu suất của API tại thời điểm đó, tải trọng máy chủ và các yếu tố khác ảnh hưởng đến thời gian.

Loại nội dung

Bạn có thể lấy kiểu nội dung của phản hồi trả về bằng cách sử dụng phương thức “contentType()”.

public static void getResponseContentType(){
   System.out.println("The content type of response "+
           get(url).then().extract()
              .contentType());
}

Đầu ra

Nhu cầu kinh doanh:

Đôi khi, việc xác định loại nội dung là rất cần thiết để đảm bảo không có lỗ hổng bảo mật nào đối với các mối đe dọa xuyên nguồn gốc và để xác nhận rằng nội dung được truyền đi tuân thủ các tiêu chuẩn của API.

Tìm nạp phần tử JSON riêng lẻ

Dựa vào thông tin đã cho, bạn được yêu cầu tính tổng số tiền. Bạn cần lấy từng số tiền và cộng chúng lại.

Bước sau:

Bước 1) Trường số tiền nằm trong một mảng có khóa là “statements”, và mảng này lại nằm trong một danh sách có khóa là “result”.

Bước 2) Rest Assured cung cấp một cơ chế để truy cập các giá trị trong API bằng cách sử dụng "đường dẫn".

Bước 3) Đường dẫn để truy cập số tiền là “result.statements.AMOUNT”. Hãy nghĩ về nó giống như XPath trong Selenium.

Bước 4) Lấy tất cả các số tiền trong một tập hợp, sau đó lặp qua tất cả các giá trị để tính tổng.

public static void getSpecificPartOfResponseBody(){

ArrayList<String> amounts = when().get(url).then().extract().path("result.statements.AMOUNT") ;
int sumOfAll=0;
for(String a:amounts){

    System.out.println("The amount value fetched is "+a);
    sumOfAll=sumOfAll+Integer.valueOf(a);
}
System.out.println("The total amount is "+sumOfAll);

}

Lưu ý: Vì giá trị số tiền là kiểu dữ liệu chuỗi, chúng ta sẽ chuyển đổi nó thành số nguyên để tính tổng.

Đầu ra:

Các phương pháp thực hành tốt nhất cho tự động hóa kiểm thử REST Assured

Khi đã nắm vững những nguyên tắc cơ bản, việc áp dụng các mô hình có kỷ luật sẽ giúp duy trì độ tin cậy của bộ kiểm thử khi giao diện API ngày càng mở rộng. Các phương pháp dưới đây giúp các nhóm tránh được các bài kiểm thử không ổn định và chi phí bảo trì phát sinh.

  1. Tập trung hóa căn cứ URL: Lưu trữ URI cơ sở và mã thông báo xác thực trong một lớp cấu hình hoặc tệp thuộc tính duy nhất. Điều này tránh trùng lặp và đơn giản hóa việc chuyển đổi môi trường.
  2. Sử dụng các thông số kỹ thuật Yêu cầu và Phản hồi: Xây dựng các đối tượng RequestSpecBuilder và ResponseSpecBuilder có thể tái sử dụng. Chúng giúp giảm thiểu mã lặp lại khi nhiều bài kiểm tra chia sẻ các tiêu đề hoặc khẳng định chung.
  3. Xác thực lược đồ JSON: Kết hợp REST Assured với mô-đun json-schema-validator để xác nhận tính hợp lệ.tracTính toàn vẹn. Việc kiểm tra lược đồ giúp phát hiện các thay đổi gây lỗi trước khi chúng đến tay người dùng cuối.
  4. Đưa dữ liệu kiểm thử ra bên ngoài: Lưu trữ dữ liệu trong các tệp JSON hoặc sử dụng các nhà cung cấp dữ liệu từ... TestNGDữ liệu được mã hóa cứng sẽ nhanh chóng trở nên lỗi thời.
  5. Tiến hành các bài kiểm tra độc lập: Mỗi bài kiểm thử nên tự thiết lập và gỡ bỏ dữ liệu của riêng nó. Các bộ kiểm thử phụ thuộc vào thứ tự thực hiện sẽ thất bại một cách khó lường trong các lần chạy CI song song.
  6. Chọn lọc nhật ký để thu thập thông tin: Hãy sử dụng log().ifError() trong các bộ kiểm thử ổn định và log().all() trong quá trình gỡ lỗi. Nhật ký chi tiết làm chậm quy trình CI và che khuất các vấn đề thực sự.
  7. Kết nối với CI/CD: Kích hoạt các bộ kiểm thử REST Assured thông qua Maven Surefire hoặc Failsafe trong JenkinsSử dụng GitHub Actions hoặc GitLab. Chạy kiểm tra nhanh (smoke check) trên mỗi lần commit và kiểm tra hồi quy toàn diện qua đêm.

Áp dụng những thói quen này ngay từ đầu sẽ biến việc tự động hóa API thành một tài sản lâu dài thay vì một nút thắt cổ chai dễ bị phá vỡ.

Câu Hỏi Thường Gặp

Đúng vậy. Các trợ lý AI hiện đại như ChatGPT và GitHub Copilot có thể soạn thảo các khung kiểm thử REST Assured từ các đặc tả API. Tuy nhiên, các kỹ sư vẫn nên xem xét lại mã được tạo ra để kiểm tra các khẳng định, xử lý dữ liệu và các trường hợp ngoại lệ trước khi hợp nhất.

Các công cụ dựa trên trí tuệ nhân tạo phân tích các mẫu phản hồi và đề xuất các bộ định vị hoặc xác nhận tự phục hồi. Chúng phát hiện sự thay đổi lược đồ, đề xuất tái cấu trúc và tự động cập nhật dữ liệu kiểm thử, giúp giảm thiểu công việc bảo trì thủ công khi API thường xuyên thay đổi.

REST Assured là một Java Thư viện được xây dựng để tự động hóa dựa trên mã trong các quy trình CI. Postman Đây là một giao diện đồ họa người dùng (GUI) để khám phá thủ công và viết kịch bản nhanh. Các nhóm thường kết hợp cả hai trong suốt vòng đời kiểm thử.

REST Assured được tối ưu hóa cho REST và JSON. Nó có thể gửi dữ liệu XML thô cho SOAP, nhưng các công cụ chuyên dụng như... SoapUI Cung cấp hỗ trợ toàn diện hơn cho việc phân tích cú pháp WSDL và các khẳng định dành riêng cho SOAP.

REST Assured kết hợp hoàn hảo với TestNG và JUnit Đối với các khẳng định, các hook vòng đời và báo cáo. Allure, Extent Reports và Maven Surefire bổ sung thêm khả năng trực quan hóa và tích hợp CI.

Tóm tắt bài viết này với: