Postman Kết Hợp Selenium: Test API Và Web Toàn Diện Cho Người Mới

5 tháng trước · 16 phút đọc
Tại sao fresher cần học cả Postman lẫn Selenium?
Mình nhớ hồi mới học testing, cứ nghĩ chỉ cần biết một tool là đủ. Học xong Postman, tưởng xin được việc ngay. Thực tế? JD nào cũng ghi "có kinh nghiệm Postman VÀ Selenium" - thiếu một là tự loại mình khỏi vòng lọc CV.
Trong phần lớn tin tuyển dụng tester tại Việt Nam, hai công cụ này xuất hiện cùng nhau. Lý do đơn giản: một app hoàn chỉnh có hai tầng cần test - tầng API (backend) và tầng giao diện (UI). Postman lo phần API, Selenium lo phần UI. Thiếu bên nào là bỏ sót cả tầng lỗi.
Postman và Selenium cover đúng 2 tầng của mọi ứng dụng web
Điều mình muốn nói rõ ngay từ đầu: bạn không cần biết lập trình mới học được hai tool này. Postman dùng giao diện click, không cần code. Selenium có thể dùng IDE record-and-playback cho người mới. Code Python/Java cho Selenium nâng cao hơn, nhưng không phải điều kiện bắt buộc để bắt đầu.
Bài này mình chia theo thứ tự thực tế: học Postman trước (nhanh hơn, trực quan hơn), sau đó học Selenium, rồi kết hợp cả hai vào một workflow test hoàn chỉnh để đưa lên portfolio.
Postman cơ bản: Test API mà không cần viết một dòng code
Postman là công cụ giúp bạn gửi request lên server và xem response trả về - tất cả qua giao diện click. Hiểu đơn giản: bạn đang "giả làm" ứng dụng, gọi thẳng vào API để xem nó hoạt động đúng không, trả về dữ liệu đúng không.
Cài Postman tại trang tải Postman chính thức - miễn phí, hỗ trợ Windows/Mac/Linux.
Giải thích 4 khái niệm cần biết trước
- HTTP Method: Loại hành động bạn muốn làm. GET = lấy dữ liệu. POST = tạo mới. PUT/PATCH = sửa. DELETE = xóa.
- Endpoint: Địa chỉ URL của API. Ví dụ:
https://api.example.com/users/1 - Request body: Dữ liệu bạn gửi kèm (thường ở POST/PUT). Định dạng JSON là phổ biến nhất.
- Response: Dữ liệu server trả về, bao gồm status code và body.
Status code là thứ bạn kiểm tra nhiều nhất:
- 200 OK = thành công
- 201 Created = tạo mới thành công
- 400 Bad Request = request sai (lỗi phía người dùng)
- 401 Unauthorized = chưa đăng nhập/token hết hạn
- 404 Not Found = không tìm thấy resource
- 500 Internal Server Error = lỗi phía server
Status code 200 không có nghĩa API đúng - còn phải kiểm tra dữ liệu trong response body
Template request API cơ bản - 3 loại hay gặp nhất
1. GET - Lấy danh sách sản phẩm
Method: GET
URL: https://api.yourapp.com/products
Headers:
Authorization: Bearer {{token}}
Expected: Status 200, body có array products
2. POST - Đăng nhập lấy token
Method: POST
URL: https://api.yourapp.com/auth/login
Headers:
Content-Type: application/json
Body (raw JSON):
{
"email": "[email protected]",
"password": "Test@12345"
}
Expected: Status 200, body có field "token"
3. PUT - Cập nhật thông tin user
Method: PUT
URL: https://api.yourapp.com/users/{{userId}}
Headers:
Authorization: Bearer {{token}}
Content-Type: application/json
Body:
{
"name": "Tên Mới",
"phone": "0901234567"
}
Expected: Status 200, body có field "updated_at"
Các template này bạn tải về và điền vào Postman là dùng được ngay: Tải template request API cơ bản
Viết test script đơn giản trong Postman
Postman có tab Tests cho phép viết JavaScript tự kiểm tra response. Nghe tới JS nhiều bạn sợ - thật ra chỉ cần copy 3 dòng này:
Đây là 3 đoạn script cơ bản nhất - không cần hiểu sâu JS, chỉ cần biết nó dùng để làm gì và copy đúng chỗ. Mình khuyên bạn chạy thử với API mẫu miễn phí như JSONPlaceholder - API mẫu miễn phí để luyện tập trước khi test API thật.
Selenium cơ bản: Tự động hóa giao diện mà không sợ popup hay Ajax
Selenium là framework tự động hóa trình duyệt. Thay vì bạn tự click từng bước trên web, Selenium làm thay - mở trình duyệt, tìm element, click, nhập liệu, kiểm tra kết quả.
Mình gặp nhiều bạn mới học Selenium bỏ cuộc ở bước đầu vì script báo lỗi liên tục. Lý do phổ biến nhất: popup và Ajax. Bài này mình tập trung thẳng vào hai vấn đề đó.
Cài đặt Selenium IDE trước (không cần code)
Selenium IDE là extension Chrome/Firefox cho phép record-and-playback - bạn thao tác trên trình duyệt, nó tự ghi lại thành script. Phù hợp tuyệt đối cho người mới chưa biết code.
Cài tại: Selenium IDE trên Chrome Web Store
Sau khi cài, bạn chỉ cần:
- Mở Selenium IDE
- Nhấn nút Record
- Thao tác trên web như bình thường
- Nhấn Stop, đặt tên test
- Nhấn Play để chạy lại
Record một lần, chạy mãi - Selenium IDE phù hợp cho fresher chưa biết code
Xử lý popup - Lỗi phổ biến số 1
Có 3 loại popup hay xuất hiện và mỗi loại xử lý khác nhau:
Popup trình duyệt (Alert) - hộp thoại xám của browser:
Popup dạng modal (div overlay) - loại do website tự tạo:
Cookie consent popup - phổ biến ở web Việt Nam:
Xử lý Ajax - Lỗi phổ biến số 2
Ajax là khi web tải dữ liệu ngầm mà không reload trang. Vấn đề: script Selenium chạy nhanh hơn tốc độ load dữ liệu, nên tìm element không thấy, báo lỗi.
Sai lầm mình hay gặp ở người mới:
Làm đúng cách:
WebDriverWait sẽ tự poll mỗi 500ms cho đến khi element xuất hiện, hoặc hết 15 giây thì báo lỗi. Vừa nhanh hơn sleep, vừa đáng tin cậy hơn.
Explicit Wait giải quyết 80% lỗi Ajax - hiểu nguyên lý quan trọng hơn nhớ cú pháp
Script test đăng nhập hoàn chỉnh
Đây là script end-to-end bạn có thể dùng làm mẫu cho portfolio:
Nếu bạn muốn hiểu thêm về JavaScript - ngôn ngữ Selenium IDE dùng khi record, khóa Lập Trình JavaScript Cơ Bản miễn phí tại F8 cover đủ phần cú pháp cơ bản cần thiết.
Kết hợp Postman và Selenium: Workflow test toàn diện
Biết dùng từng tool riêng lẻ chưa đủ. Thứ phân biệt fresher biết việc và fresher chỉ biết tool là biết khi nào dùng cái nào.
Mình dùng quy tắc đơn giản này:
Test API trước, test UI sau. Nếu API lỗi, UI sẽ lỗi theo - không cần tốn thời gian chạy Selenium khi backend chưa ổn.
Kịch bản thực tế: Test tính năng đặt hàng
Giả sử bạn được giao test tính năng đặt hàng của một app thương mại điện tử. Đây là cách chia việc:
Dùng Postman test:
POST /orders- Tạo đơn hàng mới, kiểm tra response cóorder_idGET /orders/{id}- Lấy chi tiết đơn, kiểm tra status là "pending"POST /orders/{id}/cancel- Hủy đơn, kiểm tra status đổi thành "cancelled"POST /ordersvới body thiếu field - Kiểm tra server trả 400 và message lỗi rõ ràng
Dùng Selenium test:
- Mở trang sản phẩm, click "Thêm vào giỏ"
- Kiểm tra popup confirmation hiện ra đúng
- Đi đến trang checkout, điền thông tin giao hàng
- Submit đơn hàng, kiểm tra trang xác nhận load đúng (Ajax)
- Kiểm tra email xác nhận hiển thị trong inbox (nếu có test email)
Test API trước xác nhận backend đúng - UI test sau mới có giá trị
Dùng biến Postman để không hardcode data
Một lỗi hay gặp: viết test với data cứng như user_id = 123. Data này thay đổi mỗi môi trường, mỗi lần chạy lại phải sửa tay.
Làm đúng: dùng Environment Variables trong Postman.
// Trong tab Tests của request Login:
pm.environment.set("auth_token", pm.response.json().token);
pm.environment.set("user_id", pm.response.json().user.id);
// Trong request tiếp theo, dùng:
// Header: Authorization: Bearer {{auth_token}}
// URL: /users/{{user_id}}/orders
Bạn chạy Login một lần, token tự động chạy qua tất cả request sau. Không hardcode, không sửa tay.
Bug report khi phát hiện lỗi từ cả hai phía
Khi test kết hợp, bạn sẽ gặp loại bug thú vị: API trả đúng nhưng UI hiển thị sai. Đây là lỗi frontend, không phải backend. Hoặc ngược lại.
Bug report trong trường hợp này cần ghi rõ:
- Postman call đến endpoint nào, response là gì
- UI hiển thị gì khác với response
- Screenshot cả Postman và browser
Mẫu bug report kết hợp Postman + Selenium bạn tải ở đây: Tải template bug report API + UI
Xây dựng portfolio testing để xin việc khi chưa có kinh nghiệm
Câu hỏi mình nhận nhiều nhất từ các bạn trái ngành: "Chưa có kinh nghiệm thì portfolio lấy đâu ra?"
Trả lời thẳng: tự tạo. Các công ty tuyển fresher hiểu bạn chưa có kinh nghiệm thật - nhưng họ cần thấy bạn biết làm việc chứ không chỉ biết lý thuyết.
3 dạng project portfolio dùng được Postman + Selenium
Dạng 1: Test website có sẵn miễn phí
Có nhiều web tạo ra đặc biệt để luyện tập testing:
- DemoQA - web luyện Selenium miễn phí - web demo có đủ form, login, giỏ hàng
- The Internet - web luyện Selenium nâng cao - web chuyên dùng để học Selenium
Bạn test website này, viết test case, ghi bug report (kể cả bug thật bạn tìm thấy), đưa lên GitHub.
Dạng 2: Viết test cho project người thân/quen làm
Bạn quen ai làm web freelance? Xin test thử cho họ, không lấy tiền. Đổi lại, bạn có case study thật để kể trong phỏng vấn.
Dạng 3: Tạo Postman Collection có kết quả test
Postman cho phép share Collection - bộ request có đầy đủ test script. Bạn:
- Tạo Collection test API public (như DemoQA - web luyện Selenium miễn phí)
- Viết test script cho từng request
- Chạy Collection Runner, export kết quả
- Share link Collection vào CV
Portfolio thực tế quan trọng hơn chứng chỉ - nhà tuyển dụng muốn xem bạn làm được gì
CV tester fresher cần có gì
Mình review khá nhiều CV bạn mới học - lỗi phổ biến nhất là ghi "Biết Postman, Selenium" mà không có gì chứng minh.
Thay vào đó, ghi cụ thể:
- "Xây dựng Postman Collection gồm 25 request test API cho web [tên], có test script kiểm tra status code và response body"
- "Viết 15 Selenium script Python xử lý popup và Ajax cho flow đăng nhập, đăng ký, tìm kiếm"
- "Tìm và báo cáo 8 bug trên [tên web demo], gồm 2 bug critical"
Tải mẫu CV tester fresher ở đây: Tải mẫu CV tester fresher
Một số lưu ý thực chiến trước khi đi phỏng vấn
Nhà tuyển dụng hay test live - cho bạn ngồi Postman call một API và giải thích kết quả. Chuẩn bị:
- Biết đọc JSON response, giải thích từng field
- Biết phân biệt bug phía client vs server qua status code
- Biết tại sao dùng
WebDriverWaitthaytime.sleep
Ba câu này thường xuyên xuất hiện trong vòng technical interview fresher tester tại hầu hết công ty Việt Nam.
Bước tiếp theo: Lộ trình học thực tế cho người mới
Bạn đọc đến đây nghĩa là bạn hiểu Postman và Selenium không phải thứ gì quá phức tạp. Cần gì? Luyện tập đủ để tay quen trước khi phỏng vấn.
Mình đề xuất lộ trình 6 tuần thực tế:
Tuần 1-2: Postman
- Cài Postman, làm quen giao diện
- Test 10 endpoint của JSONPlaceholder (JSONPlaceholder)
- Viết test script cho từng request
- Tạo Collection đầu tiên, đặt tên dễ đọc
Tuần 3-4: Selenium IDE
- Cài Selenium IDE, record 3 luồng cơ bản (đăng nhập, tìm kiếm, form)
- Chỉnh sửa script record để xử lý popup
- Test trên DemoQA, ghi lại bug tìm được
Tuần 5-6: Kết hợp
- Chọn 1 web demo có API public
- Test API bằng Postman, test UI bằng Selenium IDE
- Viết bug report, đưa tất cả lên GitHub
- Cập nhật CV
6 tuần đủ để có portfolio - quan trọng là luyện đều, không nhảy cóc
Thứ bạn sẽ có sau 6 tuần: 1 Postman Collection với 10+ request và test script, ít nhất 3 Selenium script xử lý popup/Ajax, 5-10 bug report đúng format, 1 GitHub repository để đưa vào CV.
Mình từng có học viên 32 tuổi từ ngành kế toán, không biết gì về IT, sau 2 tháng luyện theo lộ trình này xin được việc fresher tester. Không phải ai cũng cần 2 tháng - người nhanh hơn, người chậm hơn, đều được. Quan trọng là không bỏ qua bước luyện tay thực tế.
Nếu muốn nền tảng JavaScript vững hơn để viết Selenium test script, khóa Lập Trình JavaScript Cơ Bản miễn phí tại F8 là điểm bắt đầu tốt - không cần học hết, chỉ cần các phần về biến, hàm, điều kiện, vòng lặp.
Bài tiếp theo mình sẽ hướng dẫn chi tiết cách tổ chức Postman Collection theo dự án - đặt tên, chia folder, viết documentation để Collection của bạn đọc như tài liệu chuyên nghiệp. Bookmark lại nhé!
Có câu hỏi về Postman hay Selenium? Comment bên dưới, mình trả lời từng bạn.
