Mmaiqai.com
📋 Automation Testing · Chương 10 · Mục 10.3

Bảng test case hoàn chỉnh

Lập từ tài liệu + kết quả gọi thử thật cho mọi endpoint:

POST /auth (đăng nhập, lấy token)

Mã TCTest caseStepKỳ vọng
AUTH-01Đúng username + password (admin / password123)Gửi POST /auth với body {username: admin, password: password123}HTTP 200, body có token
AUTH-02Sai passwordGửi POST /auth với username=admin, password saiHTTP 200 (không phải 401), body {"reason":"Bad credentials"}
AUTH-03Sai usernameGửi POST /auth với username sai, password=password123HTTP 200, body {"reason":"Bad credentials"}
AUTH-04Thiếu field passwordGửi POST /auth chỉ có username=admin, không gửi passwordHTTP 200, body {"reason":"Bad credentials"}
AUTH-05Thiếu field usernameGửi POST /auth chỉ có password=password123, không gửi usernameHTTP 200, body {"reason":"Bad credentials"}

GET /booking, GET /booking/{id}

Mã TCTest caseStepKỳ vọng
GET-01GET /booking (không tham số)Gửi GET /booking, không kèm tham sốHTTP 200, trả mảng [{bookingid: ...}]
GET-02GET /booking?firstname=...&lastname=...Gửi GET /booking?firstname=...&lastname=... với tên 1 booking đã biết trướcHTTP 200, chỉ trả id khớp bộ lọc
GET-03GET /booking/{id} với id có thậtGửi GET /booking/{id} với id lấy từ GET-01HTTP 200, đủ field: firstname, lastname, totalprice, depositpaid, bookingdates
GET-04GET /booking/{id} với id không tồn tạiGửi GET /booking/{id} với id chắc chắn không tồn tại (vd 999999999)HTTP 404

POST /booking (tạo booking mới)

Mã TCTest caseStepKỳ vọng
POST-01Đủ field hợp lệ, không cần tokenGửi POST /booking với đủ field hợp lệ, không kèm tokenHTTP 200, trả bookingid mới + đúng dữ liệu đã gửi
POST-02Thiếu field bắt buộcGửi POST /booking, cố tình bỏ field firstnameHTTP 500 (Internal Server Error) — không validate rõ ràng
POST-03totalprice gửi sai kiểu dữ liệuGửi POST /booking với totalprice là chuỗi thay vì sốHTTP 200, nhưng totalprice bị lưu âm thầm thành null

PUT/PATCH /booking/{id} (sửa — cần token), DELETE /booking/{id} (xoá — cần token)

Mã TCTest caseStepKỳ vọng
PUT-01Có token hợp lệĐăng nhập lấy token, gửi PUT /booking/{id} kèm header Cookie: token=..., đủ field mớiHTTP 200, dữ liệu cập nhật đúng
PUT-02Không có tokenGửi PUT /booking/{id} với đủ field, không kèm header CookieHTTP 403
PATCH-01Chỉ gửi 1-2 field, có tokenĐăng nhập lấy token, gửi PATCH /booking/{id} kèm token, chỉ gửi field totalpriceHTTP 200, chỉ field gửi lên đổi
DEL-01Có token hợp lệĐăng nhập lấy token, gửi DELETE /booking/{id} kèm token, rồi GET lại đúng id đóHTTP 201, GET lại id đó phải 404
DEL-02Không có tokenGửi DELETE /booking/{id} không kèm token, rồi GET lại đúng id đóHTTP 403

GET /ping

Mã TCTest caseStepKỳ vọng
PING-01GET /pingGửi GET /pingHTTP 201

Ghi chú rút ra khi gọi thử — nhớ khi viết test:

  • bookingid không cố định — dữ liệu Restful-Booker tự reset định kỳ. Không hardcode 1 id, phải GET /booking lấy id thật trước (đã làm ở Chương 7 với fixture mot_booking_id_co_that).
  • Nhóm PUT/PATCH/DELETE cần token: gửi qua header Cookie: token=<token>.

Chương 11 triển khai nhóm AUTH-01 → AUTH-05. Chương 12 triển khai nhóm GET/POST/PUT/PATCH/DELETE Booking, dựa đúng hành vi thật đã xác nhận ở POST-02/POST-03.

Chương sau: viết bộ test đầy đủ cho POST /auth.