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-Type
thà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"));
}
}