NỘI DUNG BÀI HỌC
Dưới đây là ví dụ về cách upload file sử dụng Rest Assured trong TestNG
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import org.testng.annotations.Test;
import java.io.File;
public class DemoUploadFile {
@Test
public void testUploadFile() {
// Đường dẫn đến file bạn muốn upload
File file = new File("path/to/your/file.txt");
// Cấu hình URL endpoint API và các tham số khác (nếu có)
RestAssured.baseURI = "https://api.example.com/upload";
RestAssured
.given()
.multiPart("file", file) // Key "file" tùy thuộc vào API của bạn
.contentType(ContentType.MULTIPART)
.when()
.post()
.then()
.statusCode(200) // Kiểm tra mã trạng thái (200 nếu upload thành công)
.log().all();
}
}
multiPart("file", file): Chỉ định tên key"file"và file cần upload. Tên key có thể thay đổi tùy theo API của bạn.contentType(ContentType.MULTIPART): ĐặtContent-Typethànhmultipart/form-datađể hỗ trợ upload file.
Giờ mình chuyển vào project của chúng ta đã xây dựng từ trước để áp dụng. Demo với API của trang api.anhtester.com phần Image Management
![[REST Assured] Bài 20 - Upload File qua API với Rest Assured | Anh Tester](/uploads/lesson/restassured/api_upload_file_image.jpg)
import com.anhtester.common.BaseTest;
import com.anhtester.globals.TokenGlobal;
import com.anhtester.helpers.SystemHelper;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import org.testng.annotations.Test;
import java.io.File;
import static io.restassured.RestAssured.given;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasKey;
public class DemoUploadFile extends BaseTest {
@Test
public void testUploadFile() {
File file = new File(SystemHelper.getCurrentDir() + "src/test/resources/testdata/image_testing_done.jpg");
RestAssured.baseURI = "https://api.anhtester.com/api";
String endpoint = "/image";
given().header("Authorization", "Bearer " + TokenGlobal.TOKEN)
.multiPart("image", file)
.contentType(ContentType.MULTIPART)
.when().post(endpoint)
.then().log().all()
.statusCode(200)
.body("response", hasKey("path"))
.body("response", hasKey("id"));
}
} 