Automation

Những thành phần cơ bản của API

Chào mọi người, trong công việc kiểm thử phần mềm cũng như ở một số bài viết chia sẻ trước đây về Postman và Charles mình có đề cập đến API. Ở bài viết hôm nay mình sẽ giới thiệu những thành phần cơ bản của API (Application Programming Interface).

Để test API thì tester sẽ nhận được API Docs do bên Dev Back-end viết API đưa sang. API Docs có thể là file word, excel. Ngoài ra, mình còn có đọc qua API Docs mở trên swagger, postman, Redoc, GraphQL Playground. Thấy có khá nhiều document khác nhau nhưng những tài liệu này cũng có cấu trúc tương tự nhau với những thành phần sau: URL, Method, Header, Body.

API – Postman

Với Request:

URL: đường dẫn API
Method: phương thức gọi request: Get, Post, Put, Patch, Delete
Header: cặp key –  value
Body: cặp key – value 

1- URL: thì cứ theo Docs rồi copy mà ném vào thôi =))

2- Method:
a) GET: Lấy ra những dữ liệu khi gọi API đó. Giống như khi bạn search thì sẽ có kết quả trả về là 1 list những thông tin của cái mà bạn tìm kiếm. Nếu bạn đã có hiểu biết về SQL thì có thể nói nôm na như là câu lệnh SELECT.
b) POST: Với method này bạn sẽ thêm vào dữ liệu. Giống như là khi bạn login thì cần nhập vào user name và password. Hoặc có thể là register sẽ thêm mới thông tin của người dùng vào trong DB, có thể là post bài đăng mới trên facebook. Đây được coi là tương đương với câu lệnh INSERT INTO trong SQL.
c) PUT: Phương thức cho phép ta ghi đè dữ liệu một cách đầy đủ các trường. Chẳng hạn như khi ta có trang profile (tên, ngày sinh, địa chỉ, số điện thoại) và gọi đến API chỉnh sửa thông tin profile với method PUT. Có nghĩa là: muốn edit số điện thoại thôi nhưng phải viết ra đầy đủ những thông tin như tên, ngày sinh, địa chỉ mặc dù không thay đổi gì nhưng phải viết lại. Đây như là câu lệnh Update trong SQL.
d) PATCH: cũng như phương thức PUT. Nhưng khác ở chỗ PATCH cho phép chỉ cần liệt kê ra trường cần edit. Có nghĩa như ví dụ trên thì chỉ cần viết thông tin cần thay đổi của trường số điện thoại mà ko cần quan tâm những trường khác. Đây cũng là Update trong SQL.
e) DELETE: nhìn tên thì cũng đã hình dung phương thức này là xóa dữ liệu. Chẳng hạn như khi bạn muốn xóa 1 bài đã post trên facebook, xóa 1 người dùng, … Phương thức này như là câu lệnh Delete trong SQL.

3- Header: Đây sẽ là cái đầu tiên để người test nhìn vào và biết được định nghĩa của request đó như loại nội dung sẽ là json chẳng hạn. Để người test có thể biết là mình cần tìm hiểu cấu trúc file json là gì để đọc hiểu được dữ liệu.

4- Body: Đây là phần ta nhập dữ liệu với các cặp key – value. Sẽ sử dụng với các phương thức POST, PUT, PATCH, DELETE. Còn phương thức get thì không, thường thì GET sẽ điền ở Param.

5- Ngoài ra còn có Pre-request (thực thi trước khi chạy request) và Test (các scripts để kiểm tra các Test Cases API pass/fail).

Với Response:

1- Body: data trả về

2- Header: Status code, infor client & server

3- Ngoài ra còn có Test result: Hiển thị kết quả trả về của scripts pass/fail.

Một số Status code thường gặp:

200 OK:  Request thành công và có kết quả trả về
201 Created: Request thành công và đã thêm dữ leieuj mới vào DB
400 Bad Request: Invalid Request => thông tin ở Body sai
401 Unauthorized: sai thông tin Authorization ở phần Header.
404 Not Found: sai URL
426 Upgrade Required: yêu cầu nâng cấp lên bản mới hơn để tiếp tục (pop up yêu cầu nâng cấp trên thiết bị chẳng hạn)
500 Server Error: domain, hosting hết hạn, hoặc dừng server đột ngột để test
502 Bad Gateway:
503 Service Unavailable

Có thể tham khảo các status code trong link này với những đánh dấu sao là hay gặp trong test API: https://www.restapitutorial.com/httpstatuscodes.html

5 4 votes
Article Rating
Subscribe
Notify of
guest
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Thành Trung
3 months ago

Bài này hay á

Binhsketch
1 month ago

Thank you!