Đang tải...

Lửng Lọc Lõi

Đeo kính để soi Bug cho rõ, nhíu mày để nhắc Dev sửa cho kỹ. Với tôi, 'chạy được' thôi là chưa đủ! 🧐💻


0

Selenium vs Các Tool Khác: Khi Nào Dùng Cho Web Testing Fresher

Lửng Lọc Lõi
Lửng Lọc Lõi

5 tháng trước · 13 phút đọc

Mình từng chọn sai tool và mất cả tuần để học lại

Hồi mới vào nghề, mình thấy JD nào cũng ghi "Selenium" nên cắm đầu học Selenium. Mất 3 tuần. Đến khi phỏng vấn, interviewer hỏi: "Bạn có biết Postman không?" - câu trả lời là không. Vòng đó mình rớt.

Vấn đề không phải là Selenium kém. Mà là mình không hiểu khi nào dùng tool nào. Bài này mình viết để bạn không phải mất thời gian như vậy.

Trước khi so sánh, cần nắm 1 điều: ba tool này không cạnh tranh nhau. Chúng giải quyết ba vấn đề khác nhau hoàn toàn.

343572 Ba công cụ - ba bài toán khác nhau, không phải chọn 1 bỏ 2

  • Selenium: Test giao diện người dùng (UI) trên trình duyệt - bạn muốn kiểm tra người dùng thao tác trên web có hoạt động đúng không.
  • Postman: Test API - kiểm tra backend trả dữ liệu đúng không, độc lập với giao diện.
  • JMeter: Test hiệu năng (performance) - hệ thống chịu được bao nhiêu người dùng cùng lúc.

Một dự án thực tế cần cả ba. Fresher thường chỉ cần thành thạo 1-2, nhưng phải biết cơ bản cả ba để không bị lạc lõng trong team.


Selenium là gì và làm được gì?

Selenium là thư viện mã nguồn mở cho phép bạn điều khiển trình duyệt bằng code - giống như bạn đang ngồi dùng web, nhưng máy tính tự làm thay.

Bạn viết script, Selenium sẽ tự: mở Chrome, gõ username, nhập password, bấm nút Login, kiểm tra có chuyển sang dashboard không. Nếu UI thay đổi mà logic vẫn đúng, test vẫn pass. Nếu bug xuất hiện, test fail và báo cáo ngay.

Selenium mạnh nhất khi:

  • Test luồng người dùng phức tạp: đăng ký → xác nhận email → đăng nhập → mua hàng → thanh toán
  • Kiểm tra UI responsive trên nhiều trình duyệt (Chrome, Firefox, Edge)
  • Regression testing sau mỗi release - chạy lại 200 test case trong 30 phút thay vì tester ngồi click tay cả ngày
  • Dự án có frontend phức tạp: single-page app, animation, dynamic content load bằng JavaScript

343573 Selenium tự động hóa thao tác người dùng trên trình duyệt - giảm công việc thủ công đáng kể

Selenium không làm được:

  • Test API trực tiếp (không có UI)
  • Test performance/load (không mô phỏng hàng nghìn user)
  • Test mobile native app (cần Appium thay thế)
  • Nhanh và nhẹ - Selenium chạy cả trình duyệt nên khá nặng so với API test

Thật ra đây là trade-off hợp lý. Selenium giải quyết đúng bài toán UI, bạn không nên ép nó làm việc của Postman.


Postman và JMeter: Giải quyết bài toán khác

Postman - vua test API

Postman cho phép bạn gửi request HTTP đến server và kiểm tra response - mà không cần mở trình duyệt, không cần UI. Tưởng tượng bạn đang "nói chuyện trực tiếp" với backend.

Ví dụ: Trang đặt vé máy bay có tính năng "Tìm chuyến bay". Thay vì mở web, điền form, bấm Tìm (Selenium làm cái này), Postman gửi thẳng request GET /api/flights?from=HAN&to=SGN&date=2024-12-25 và kiểm tra response trả về có đúng format, đúng dữ liệu không.

Postman mạnh vì: nhanh hơn Selenium 10-20 lần, test được cả khi chưa có UI, dễ debug lỗi backend, tích hợp tốt với CI/CD pipeline.

343574 Postman vs Selenium: hai lớp kiểm tra khác nhau trong cùng một hệ thống

JMeter - stress test hệ thống

JMeter mô phỏng hàng nghìn người dùng truy cập cùng lúc. Bạn muốn biết web có chết không khi hàng chục nghìn người mua vé cùng lúc trong đợt flash sale? JMeter làm được điều đó.

JMeter phù hợp cho:

  • Performance testing: đo response time trung bình
  • Load testing: hệ thống chịu được bao nhiêu concurrent users
  • Stress testing: tìm điểm gãy của hệ thống

Fresnher thường không cần JMeter ngay từ đầu. Nhưng biết cơ bản giúp bạn hiểu tại sao team QA lại quan tâm đến "tải" của hệ thống, và đây là điểm cộng khi phỏng vấn.


So sánh trực tiếp: Selenium vs Postman vs JMeter

Bảng dưới đây tổng hợp những điểm khác biệt quan trọng nhất - không phải để bạn chọn 1 bỏ 2, mà để biết khi nào dùng cái gì.

Tiêu chí Selenium Postman JMeter
Test loại gì? UI/E2E trên browser API (REST, GraphQL) Performance/Load
Cần code không? Có (Java, Python...) Không bắt buộc Không bắt buộc
Tốc độ chạy Chậm (chạy browser) Nhanh Trung bình
Học dễ không? Trung bình Dễ Trung bình
Dùng khi nào? UI phức tạp, regression Test API, backend Stress/load test
Phổ biến ở VN? Rất phổ biến Rất phổ biến Phổ biến

343575 Chọn tool theo loại dự án, không phải chọn theo trend

Điểm mấu chốt cho fresher:

Mình thấy phần lớn JD tuyển QA fresher tại Việt Nam năm 2024 yêu cầu hoặc ưu tiên ít nhất 1 trong 3 tool trên. Nhưng ít JD nào yêu cầu cả ba cùng lúc ở level fresher.

Thực tế từ các dự án mình từng tham gia: dự án web app thương mại điện tử thường cần Selenium + Postman kết hợp. Selenium test luồng mua hàng end-to-end, Postman verify API thanh toán trả đúng dữ liệu. JMeter vào sau khi hệ thống ổn định, thường do senior QA hoặc DevOps phụ trách.

Nếu bạn đang ở bước chọn tool để học đầu tiên: Postman trước, Selenium sau. Postman dễ học hơn, không cần code, và gần như dự án nào cũng cần.


Khi nào nên dùng Selenium? Checklist thực tế

Câu hỏi mình hay nhận được: "Dự án của mình có cần Selenium không?" Câu trả lời phụ thuộc vào 5 yếu tố dưới đây.

Dùng Selenium khi:

  • Dự án có UI phức tạp: nhiều popup, modal, dynamic content, drag-and-drop
  • Cần chạy regression testing định kỳ sau mỗi sprint (manual quá tốn thời gian)
  • Dự án web app - không phải API-only hay mobile app
  • Team đã có người biết code (Java/Python) để maintain script
  • JD bạn apply ghi "automation testing" hoặc "Selenium" trong requirements

Không cần Selenium khi:

  • Dự án nhỏ, ít tính năng - manual test nhanh hơn, không cần automation
  • Chỉ cần test API - Postman đủ dùng
  • UI thay đổi liên tục (startup phase) - script sẽ break liên tục, tốn công maintain hơn lợi
  • Bạn chưa biết code căn bản - học Postman trước, hiệu quả hơn

343576 Automation test không phải lúc nào cũng tốt hơn manual - phải chọn đúng thời điểm

Một lưu ý quan trọng: Selenium có nhiều "binding" (ngôn ngữ hỗ trợ) khác nhau - Java và Python là phổ biến nhất tại Việt Nam. Nếu chưa biết lập trình cơ bản, bạn cần học thêm. Không cần giỏi, nhưng cần hiểu cấu trúc code, vòng lặp, điều kiện.

Selenium cũng có "đàn em" là PlaywrightCypress - hai tool mới hơn, dễ setup hơn, đang được nhiều công ty startup tại Việt Nam áp dụng. Biết Selenium giúp bạn học Playwright/Cypress nhanh hơn nhiều vì logic tương tự.

Tải checklist bên dưới để tự đánh giá dự án của bạn có cần Selenium không: Tải checklist đánh giá dự án cần Selenium


Dự án tuyển dụng tại Việt Nam thường cần gì?

Mình tổng hợp từ hàng chục JD tuyển QA fresher trên TopCV, ITViec, LinkedIn trong 2024. Có một số pattern rõ ràng.

Startup (dưới 50 nhân viên): Thường cần Postman nhiều hơn Selenium. Lý do - UI thay đổi nhanh, maintain Selenium script tốn kém hơn lợi ích. Họ cần tester linh hoạt, test API tốt, bug report rõ ràng.

Công ty outsource (làm dự án cho nước ngoài): Hay yêu cầu Selenium hoặc automation tool. Dự án thường dài hạn, UI ổn định, có CI/CD pipeline - môi trường lý tưởng cho automation.

Product company (có sản phẩm riêng): Cần cả hai. Junior có thể bắt đầu bằng manual + Postman, sau đó học thêm Selenium khi đã hiểu sản phẩm.

343577 Loại công ty khác nhau - yêu cầu tool khác nhau - CV cần điều chỉnh tương ứng

Gợi ý cho CV fresher:

Nếu bạn chỉ có thời gian học 1 tool trước khi apply, chọn theo loại công ty mục tiêu:

  • Apply outsource → ưu tiên Selenium cơ bản
  • Apply startup → ưu tiên Postman thành thạo
  • Apply product company → Postman trước, thêm Selenium sau

Tham khảo thêm các JD thực tế tại: ITviec - Việc làm QA tại Việt Nam

Một lưu ý về Jira - tool quản lý bug không phải tool test, nhưng gần như mọi JD đều ghi. Đây không phải Selenium hay Postman, nhưng biết dùng Jira để report bug rõ ràng là điều bắt buộc trước khi nghĩ đến automation.


Lộ trình học thực tế cho fresher

"Học cái gì trước?" - đây là câu hỏi mình nhận nhiều nhất. Thật ra không có đáp án đúng tuyệt đối, nhưng có đáp án hợp lý nhất dựa trên thị trường Việt Nam.

Tháng 1-2: Nền tảng

Trước khi học bất kỳ tool nào, bạn cần hiểu testing fundamentals: test case là gì, bug report viết ra sao, test level (unit/integration/E2E) khác nhau thế nào. Không có nền tảng này, học Selenium hay Postman đều sẽ bị hổng.

Song song đó, học HTML/CSS cơ bản đủ để hiểu UI. Bạn không cần code được web, nhưng phải đọc được DOM, biết button có ID là gì, input field tên gì - để sau này dùng Selenium locate element đúng chỗ. Nếu muốn build nền tảng web từ đầu, khóa HTML CSS từ Zero đến Hero của F8 là lựa chọn miễn phí và khá đầy đủ.

Tháng 3: Postman

Học Postman: gửi GET/POST/PUT/DELETE request, đọc response JSON, viết basic assertion (kiểm tra status code, body data), tạo collection và environment variable. Thực hành với JSONPlaceholder - API thực hành miễn phí - API public miễn phí để luyện tập.

343578 Lộ trình học đúng thứ tự giúp bạn không bị hổng kiến thức giữa chừng

Tháng 4-5: Selenium cơ bản

Học Python cơ bản song song với Selenium. Python dễ hơn Java, cú pháp gần tiếng người hơn. Mục tiêu: viết được script tự động test luồng đăng nhập, điền form, kiểm tra kết quả hiển thị.

Nếu bạn muốn học JavaScript để hiểu web sâu hơn (và sau này học Playwright/Cypress dễ hơn), khóa Lập Trình JavaScript Cơ Bản của F8 cũng là lựa chọn miễn phí đáng cân nhắc.

Tháng 6: Ghép lại

Tìm 1 dự án thực hành có cả UI và API. Viết test plan, viết test case, dùng Postman test API, dùng Selenium test UI, báo cáo bug trên Jira. Đây là thứ bạn đem vào portfolio khi phỏng vấn.

Không cần học JMeter ở giai đoạn này. Biết nó tồn tại và giải quyết bài toán gì là đủ. JMeter học sau khi đã có 6-12 tháng kinh nghiệm thực tế.


Tóm lại, bạn cần làm gì ngay hôm nay?

Testing không khó. Khó là biết dùng đúng tool cho đúng vấn đề. Selenium tốt cho UI phức tạp, nhưng không thay được Postman khi test API, và không thay được JMeter khi stress test.

Nhớ 3 điểm này:

  1. Học Postman trước - dễ hơn, cần thiết hơn, JD nào cũng hỏi
  2. Học Selenium sau - khi đã hiểu web cơ bản và đọc được HTML DOM
  3. JMeter để sau cùng - không cần gấp ở level fresher

Nếu bạn đang chuẩn bị CV, hãy ghi rõ: đã test loại gì (API hay UI), dùng tool gì (Postman, Selenium), dự án thực hành ở đâu (GitHub, tự làm, khóa học). Recruiter không cần bạn biết hết 10 tool - cần bạn biết rõ 1-2 tool và giải thích được tại sao dùng nó.

25, 30 hay 35 tuổi chuyển ngành vào testing đều được. Mình từng dạy bạn 33 tuổi từ ngành kế toán, 8 tháng sau làm QA tester cho công ty outsource. Không cần background IT - cần tỉ mỉ, logic tốt, và chịu học.

Comment bên dưới loại công ty bạn đang nhắm tới (startup, outsource, hay product) - mình gợi ý tool nào nên học trước cho phù hợp!

343579 Bước đầu tiên đơn giản nhất: mở Postman và gửi request đầu tiên ngay hôm nay