Khi test API, phần request body và response body thường được viết dưới dạng JSON. Tester không cần biết lập trình sâu, nhưng cần đọc được cấu trúc JSON, nhận ra kiểu dữ liệu và phân biệt các giá trị dễ gây nhầm lẫn.
JSON là gì?
JSON (JavaScript Object Notation) là định dạng văn bản thường dùng để trao đổi dữ liệu qua API. JSON dễ đọc, nhẹ và hỗ trợ cấu trúc lồng nhau.
{
"id": 125,
"name": "Bàn phím",
"price": 790000,
"inStock": true,
"discount": null,
"tags": ["office", "wireless"],
"seller": {
"id": 8,
"name": "Elite Store"
}
}Các thành phần trong JSON
| Thành phần | Giải thích | Ví dụ |
|---|---|---|
| Object | Tập hợp các cặp key–value, đặt trong { } | seller là một object |
| Array | Danh sách có thứ tự, đặt trong [ ] | tags là một array |
| Key–value | Key là tên thuộc tính; value là giá trị tương ứng | "id": 125 |
| String | Chuỗi ký tự đặt trong dấu ngoặc kép | "Bàn phím" |
| Number | Số nguyên hoặc số thập phân | 790000 |
| Boolean | Giá trị logic | true hoặc false |
| null | Chủ động biểu diễn không có giá trị | "discount": null |
Giá trị của một key có thể là string, number, boolean, null, object hoặc array. JSON không có kiểu ngày tháng riêng; ngày giờ thường được truyền dưới dạng string theo format mà API quy định.
Tester làm việc với JSON như thế nào?
- Kiểm tra đủ field: response có trả đúng các key theo tài liệu API không?
- Kiểm tra kiểu dữ liệu:
pricephải là number hay lại trả về string"790000"? - Kiểm tra giá trị: tên, giá, trạng thái và dữ liệu lồng nhau có đúng không?
- Kiểm tra cấu trúc: một field phải là object nhưng server lại trả array, hoặc ngược lại.
- Kiểm tra trường hợp đặc biệt: field bị thiếu, trả
null, chuỗi rỗng hoặc mảng rỗng.
inStock là boolean. Nếu API trả "true" trong dấu ngoặc kép, giá trị trông có vẻ đúng nhưng kiểu dữ liệu lại là string. Đây vẫn là lỗi.Cách lấy một giá trị từ cấu trúc JSON
Trong thực tế, tester thường cần lấy một giá trị cụ thể để kiểm tra. Ví dụ: lấy tên người bán, phần tử đầu tiên trong danh sách tags hoặc tiêu đề bài viết đầu tiên trong response.
JSONPath đơn giản
JSONPath là cách mô tả đường dẫn tới một giá trị trong JSON. Ký hiệu $ đại diện cho phần gốc (root); dấu chấm đi vào một thuộc tính; chỉ số trong ngoặc vuông chọn phần tử của array và bắt đầu từ 0.
| Muốn lấy | JSONPath | Kết quả |
|---|---|---|
| Tên sản phẩm | $.name | "Bàn phím" |
Tên người bán trong object seller | $.seller.name | "Elite Store" |
| Tag đầu tiên | $.tags[0] | "office" |
| Tất cả tags | $.tags[*] | ["office", "wireless"] |
$.seller.name có thể đọc từ trái sang phải: bắt đầu từ root → vào object seller → lấy thuộc tính name.Xem thêm: API Testing (P1): API, Client–Server và REST API và API Testing: Cấu trúc của 1 API.




