Tìm hiểu về Selenium - Questions & Answers

selenium-training.png

Như các bạn đã biết Automation testing hay Test Automation là quá trình tự động hóa các công việc liên quan đến test application hoặc system.</br> Automation testing là việc sử dụng một công cụ kiểm thử riêng biệt cho phép bạn tạo ra các kịch bản thử nghiệm có thể được thực hiện nhiều lần và không cần bất kỳ sự can thiệp bằng phương pháp thủ công thông thường nào.</br>

Automation testing được biết đến với rất nhiều lợi ích:

  • Hỗ trợ các trường hợp mà việc execute test lặp đi lặp lại
  • Hỗ trợ các trường hợp execute test một ma trận thử nghiệm lớn
  • Có thể thực hiện execute test song song
  • Có thể thực hiện execute test mà không cần người giám sát
  • Cải thiện độ chính xác, giảm tối đa các lỗi do con người tạo ra
  • Tiết kiệm thời gian và tiền bạc

Hiện nay có rất nhiều tool hỗ trợ cho Automation testing và Selenium cũng là một trong số đó.</br> Hãy cùng tìm hiểu về Selenium - Automation testing tool thông qua các câu hỏi cơ bản và phổ biến dưới đây:</br>

Q&A 1. Tại sao nên lựa chọn dùng Selenium?

Selenium-intro-1-new.jpg

  • Selenium là tool free và có open source
  • Selenium có cộng đồng sử dụng đông đảo
  • Selenium có khả năng tương thích trên nhiều Browser (Firefox, chrome, Internet Explorer, Safari etc.)
  • Selenium có khả năng tương thích tốt với platform (Windows, Mac OS, Linux etc.)
  • Selenium hỗ trợ với nhiều ngôn ngữ lập trình (Java, C#, Ruby, Python, Pearl etc.)
  • Selenium thường xuyên được phát triển và cải tiến

Q&A 2. Selenium là gì? Selenium có gì khác biệt?

Selenium là một trong những công cụ kiểm thử phổ biến nhất hiện nay.</br> Selenium được thiết kế để hỗ trợ và nâng cao automation testing cho các ứng dụng web trên nhiều browsers và platforms. Và có sức ảnh hưởng khá lớn trong cộng đồng open source.</br> Selenium không chỉ là một tool hay một tiện ích, mà nó là một gói các tool cho cùng một chức năng và được biết đến như là một Suite (bộ). Mỗi tool sẽ được thiết kế để phục vụ cho các yêu cầu và môi trường riêng. Suite (bộ) bao gồm các tool dưới đây:

different-components-of-selenium-tool.png

Selenium Integrated Development Environment (IDE) – Selenium IDE là tool tạo ra các bản ghi và thực hiện lại theo các bản ghi đó. Nó được sử dụng như là một Firefox Plugin.</br> Selenium Remote Control (RC) – Selenium RC là một server mà cho phép người sử dụng tạo các test script bằng ngôn ngữ lập trình. Nó cũng cho phép execute test script trên nhiều browser.</br> Selenium WebDriver – WebDriver là một tool hoàn toàn khác biệt so với Selenium RC. WebDriver trực tiếp giao tiếp với các web browser và có tính tương thích để thực hiện automation.</br> Selenium Grid – Selenium Grid thường được sử dụng execute test trên nhiều platform và được sử dụng một cách đồng thời trên nhiều môi trường.</br>

Q&A 3. Selenium có thể hỗ trợ test type nào?

Functional Testing

Regression Testing

seleniumtesting.jpg

Q&A 4. Những điểm hạn chế của Selenium là gì?</br>

  • Selenium chỉ hỗ trợ những ứng dụng web
  • Các ứng dụng trên moblie không thể sử dụng Selenium
  • Captcha và Bar code readers không thể sử dụng Selenium
  • Các bản ghi chỉ được sinh ra nhờ bên thứ ba như TestNG hoặc Junit
  • Selenium là một tool miễn phí, do đó không có hỗ trợ từ nhà cung cấp mặc dù có thể tìm thấy giúp đỡ từ đông đảo cộng đồng sử dụng Selenium
  • Người sử dụng cần có kiến thức về ngôn ngữ lập trình

Q&A 5. Điểm khác biệt giữa Selenium IDE, Selenium RC và WebDriver?

_. Tính năng _. Selenium IDE _. Selenium RC _. WebDriver
Khả năng tương thích với các Browser Selenium IDE như là một plugin của Firefox, do đó nó chỉ hỗ trợ trên Firefox Selenium RC có thể hỗ trợ trên các phiên bản của Mozilla Firefox, Google Chrome, Internet Explorer và Opera WebDriver có thể hỗ trợ trên các phiên bản của Mozilla Firefox, Google Chrome, Internet Explorer và Opera
Cũng hỗ trợ một phần HtmlUnitDriver về GUI và headless browser.
Record và Playback Selenium IDE có tính năng record và playback Selenium RC không có tính năng record và playback WebDriver không có tính năng record và playback
Yêu cầu về Server Selenium IDE không có bất cứ yêu cầu gì về server trước khi execute test script Selenium RC có yêu cầu về server trước khi execute test script WebDriver không có bất cứ yêu cầu gì về server trước khi execute test script
Cấu trúc Selenium IDE dựa trên Javascript framework Selenium RC dựa trên Javascript framework WebDriver sử dụng khả năng tương thích với browser để thực hiện automation
Hướng đối tượng Selenium IDE không phải tool có tính hướng đối tượng Selenium RC là tool bán đối tượng WebDriver là tool hướng đối tượng hoàn toàn
Tìm kiếm động
(Định vị các thành phần web của một trang web) Selenium IDE không hỗ trợ tìm kiếm động Selenium RC không hỗ trợ tìm kiếm động WebDriver hỗ trợ việc tìm kiếm động
Xử lý Alerts, Navigation, Dropdowns Selenium IDE không cung cấp rõ ràng để xử lý các alerts, navigations, dropdowns Selenium RC không cung cấp rõ ràng để xử lý các alerts, navigations, dropdowns WebDriver cung cấp một loạt các tiện ích và các class trong việc xử lý các alerts, navigations, dropdowns một cách hiệu quả
WAP (iPhone/Android) Testing Selenium IDE không hỗ trợ testing các ứng dụng trên iPhone/Andriod Selenium RC không hỗ trợ testing các ứng dụng trên iPhone/Andriod WebDriver được thiết kế để hỗ trợ hiệu quả testing các ứng dụng trên iPhone/Android. Công cụ này đi kèm với rất nhiều driver cơ bản trên WAP testing. Ví dụ: AndroidDriver, iPhoneDriver
Hỗ trợ Listener Selenium IDE không hỗ trợ listeners Selenium RC không hỗ trợ listeners WebDriver hỗ trợ việc thực thi listeners
Tốc độ Selenium IDE được cài đặt và sử dụng nhanh chóng như là plugged in của browser. Như vậy, IDE và browser được kết nối trực tiếp Selenium RC thì chậm hơn so với WebDriver vì nó không được kết nối trực tiếp với browser, thay vào đó, nó sẽ gửi lệnh Selenese thông qua Selenium Core để kết nối với browser WebDriver kết nối trực tiếp với web browser. Do đó tốc độ sẽ nhanh hơn rất nhiều

Hi vọng bài viết này sẽ cung cấp cho bạn những hiểu biết và lợi ích cơ bản về Selenium - Automation testing tool. Từ đó sẽ có những lựa chọn phù hợp với nhu cầu sử dụng trong thực tế.