NỘI DUNG BÀI HỌC

✳️ Sử dụng phương thức POST trong request
✳️ Cách truyền data đầu vào trong Body dạng JSON

✅ Sử dụng phương thức POST trong request

Phương thức POST trong RESTful API dùng để gửi dữ liệu đi, hay có thể hiểu nhanh là tạo mới dữ liệu.

Các bạn xem document của API register user sẽ thấy yêu cầu là phương thức POST. Dùng để tạo mới một user với thông tin đi kèm.
https://api.anhtester.com/swagger/index.html#/Authentication/Register



Và đơn giản lúc này thay vì các bạn dùng hàm get() ở phần request trước đây để get dữ liệu thì giờ thay bằng hàm post() để gửi request cho yêu cầu phương thức POST từ API.

@Test
public void testRegisterUser() {
    RequestSpecification request = given();
    request.baseUri("https://api.anhtester.com/api")
        .accept("application/json");

    //Thực hiện phương thức post() để gửi dữ liệu đi
    Response response = request.when().post("/register");
    response.prettyPrint();

}


Ví dụ khác cho API dùng phương thức POSTlogin user https://api.anhtester.com/swagger/index.html#/Authentication/loginUser




@Test
public void testLoginUser() {
    RequestSpecification request = given();
    request.baseUri("https://api.anhtester.com/api")
        .accept("application/json");

    //Thực hiện phương thức post() để gửi dữ liệu đi
    Response response = request.when().post("/login");
    response.prettyPrint();
    response.then().statusCode(200);
}


Tuy nhiên thì kết quả trả về là lỗi 422 do chúng ta chưa truyền data đầu vào trong body 😁

{
    "message": "The username field is required. (and 1 more error)",
    "errors": {
        "username": [
            "The username field is required."
        ],
        "password": [
            "The password field is required."
        ]
    }
}

java.lang.AssertionError: 1 expectation failed.
Expected status code <200> but was <422>.


Tiếp theo chúng ta cần truyền data đầu vào để khắc phục lỗi trên, cũng như đảm bảo đầy đủ yêu cầu cho từng Endpoint với phương thức POST.


✅ Cách truyền data đầu vào trong Body dạng JSON

Ví dụ API đầu tiên là login user thì yêu cầu đầu vào là data dạng JSON với 2 field "username" và "password"

{
  "username": "anhtester",
  "password": "Demo@123"
}


Trước tiên chúng ta cần lấy đối tượng request để gọi hàm contentType() để xác thực kiểu giá trị đầu vào là "application/json"

Tiếp theo dùng đối tượng request để gọi hàm body() và truyền trực tiếp đoạn data JSON vào dấu ngoặc kép, vì nó là chuỗi JSON.

@Test
public void testLoginUser() {
    RequestSpecification request = given();
    request.baseUri("https://api.anhtester.com/api")
        .accept("application/json")
        .contentType("application/json")
        .body("{\n" +
            "  \"username\": \"anhtester\",\n" +
            "  \"password\": \"Demo@123\"\n" +
            "}");

    //Thực hiện phương thức post() để gửi dữ liệu đi
    Response response = request.when().post("/login");
    response.prettyPrint();

    response.then().statusCode(200);
}

Kết quả nhận về cũng là một JSON chứa token giá trị là chuỗi:

{
    "token": "155|jNTLrB3ohafsSPGeuYTJ8Bl2yttawS9F6fHqwW8v0357dc9f"
}


Chúng ta dùng giá trị token này để thực hiện cho các Endpoint khác trong tài liệu kiểm thử API.

🔆 Ví dụ khác dùng phương thức POST register user

@Test
public void testRegisterUser() {
    RequestSpecification request = given();
    request.baseUri("https://api.anhtester.com/api")
        .accept("application/json")
        .contentType("application/json")
        .body("{\n" +
            "  \"username\": \"anhtester01\",\n" +
            "  \"firstName\": \"Anh\",\n" +
            "  \"lastName\": \"Tester\",\n" +
            "  \"email\": \"anhtester01@email.com\",\n" +
            "  \"password\": \"Demo@123\",\n" +
            "  \"phone\": \"0123456789\",\n" +
            "  \"userStatus\": 1\n" +
            "}");

    //Thực hiện phương thức post() để gửi dữ liệu đi
    Response response = request.when().post("/register");
    response.prettyPrint();
    response.then().statusCode(200);
}

Kết quả:

{
    "message": "Success",
    "response": {
        "username": "anhtester01",
        "firstName": "Anh",
        "lastName": "Tester",
        "email": "anhtester01@email.com",
        "phone": "0123456789",
        "userStatus": 1,
        "id": 27
    }
}

Teacher

Teacher

Anh Tester

Software Quality Engineer

Đườ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

Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ khóa học lên trang

Bạn có thể đăng khóa học của chính bạn lên trang Anh Tester để kiếm tiền

Danh sách bài học