🔌 Automation Testing · Chương 7 · Mục 7.3
Gọi GET đơn giản
Tệp tests/test_02_api_co_ban.py:
FILE tests/test_02_api_co_ban.py
"""Demo Playwright cho API testing: APIRequestContext, request.get/post, expect(response), fixture."""from playwright.sync_api import expectdef test_ping_xac_nhan_api_con_song(api_context):"""GET /ping phai tra ve trang thai OK (201) - buoc kiem tra suc khoe co ban truoc khi test sau."""response = api_context.get("/ping")expect(response).to_be_ok()
| Dòng | Giải thích |
|---|---|
| def test_ping_xac_nhan_api_con_song(api_context): | api_context là fixture vừa tạo ở mục 7.2 — pytest tự truyền vào |
| api_context.get("/ping") | Gửi HTTP GET tới /ping (ghép với base_url đã gán sẵn) |
| expect(response).to_be_ok() | Kiểm tra response có status thành công (2xx). Chi tiết về expect(response) sẽ học kỹ ở Chương 8 |
Để ý: docstring ghi "phải trả 201", nhưng to_be_ok() chỉ kiểm tra status nằm trong khoảng 200-299 nói chung — không khẳng định đúng con số 201 cụ thể (200 hay 204 cũng sẽ PASS). Ở đây chỉ cần biết "API còn sống", nên dùng kiểm tra lỏng là đủ. Muốn khẳng định đúng chính xác mã 201, phải dùng assert response.status == 201 — cách làm này học ở Chương 8.
Chạy:
TERMINAL
pytest tests/test_02_api_co_ban.py::test_ping_xac_nhan_api_con_song -v
Kết quả:
KẾT QUẢ
tests/test_02_api_co_ban.py::test_ping_xac_nhan_api_con_song PASSED [100%]============================== 1 passed in 1.58s ==============================