SF

""

Cơ bản về Selenium

Cơ bản về Selenium



Selenium là gì?

Selenium là một bộ công cụ kiểm thử tự động open source, dành cho các ứng dụng web, hỗ trợ hoạt động trên nhiều trình duyệt và nền tảng khác nhau như Windows, Mac, Linus… Với Selenium, bạn có thể viết các testscript bằng các ngôn ngữ lập trình khác nhau như Java, PHP, C#, Ruby hay Python hay thậm chí là Perl…

Selenium được sử dụng để automate các thao tác với trình duyệt, hay dễ hiểu hơn là nó giúp giả lập lại các tương tác trên trình duyệt như một người dùng thực sự. Ví dụ bạn có thể lập trình để tự động bật trình duyệt, open một link, input dữ liệu, hay get infor page, upload, download dữ liệu từ trên web page. Với selenium bạn có thể làm đc rất nhiều thứ. Hơn thế nữa, bạn có thể sử dụng, tùy biến để tận dụng tối đa sức mạnh của nó. Ngoài mục đích sử dụng trong kiểm thử, bạn có thể tự xây dựng một project để automate những công việc nhàm chán, lặp đi lặp lại của bạn.

Selenium bao gồm những gì?

Selenium là một khái niệm chung về một bộ phần mềm được sử dụng trong automation, mỗi loại trong đó đáp ứng một yêu cầu testing khác nhau. Về cơ bản thì Selenium có 4 thành phần:

  1. Selenium IDE: Selenium Integreted Development Environment (IDE), là một plug-in trên trình duyệt Fire-Fox, ta có thể sử dụng để record và play back lại các thao tác đó theo một quy trình hay một test case nào đó.
  2. Selenium RC: Selenium Remote Control (RC), Selenium server khởi chạy và tương tác với trình duyệt web.
  3. WebDriver: Selenium WebDriver gửi lệnh khởi chạy và tương tác trực tiếp tới các trình duyệt mà không cần thông qua một server như Selenium RC.
  4. Selenium Grid: Selenium Hub dùng để khởi chay nhiều các test thông qua các máy và các trình duyệt khác nhau tại cùng một thời điểm.

Năm 2008, Selenium team đã quyết định gộp Selenium RC và WebDriver để tạo ra Selenium 2 với nhiều tính năng mạnh mẽ hơn, mà hiện nay phần lớn các project Selenium đều sử dụng.

Một số tính năng nổi bật chung

  • Có thể kết hợp với nhiều ngôn ngữ lập trình: Java, .Net, Ruby, Python, Perl
  • Selenium giả lập thao tác người dùng trên web page và các web element.
  • Có thể verify và so sánh thông tin trên web page
  • Script đc base theo HTML, học dễ và ứng dụng cũng rất nhanh
  • Có thể tạo một bộ test bao gồm nhiều test case
  • Có thể run các test suite thông qua Selenium IDE hoặc Selenium command line
  • Selenium API hỗ trợ nhiều loại trình duyệt, do đó sẽ rất dễ dàng khi test các ứng dụng web với các trình duyệt khác nhau.

Selenium IDE

ide

Selenium Integrated Development Environment (IDE), là framework đơn giản nhất và dễ học nhất trong bộ Selenium. Nó là một plug-in chỉ dành cho trình duyệt FireFox – bạn chỉ có thể sử dụng Selenium IDE với trình duyệt FireFox mà thôi. Bạn có thể kết hợp Selenium IDE với các plug-in khác để tận dụng được nhiều tính năng hơn với IDE.

Tuy nhiên, vì nó đơn giản nên bạn cũng chỉ thực hiện được những case đơn giản mà thôi. Với những case phức tạp hơn, thì bạn phải sử dụng WebDriver.

Ưu điểm:

  1. Dễ dàng cài đặt và sử dụng
  2. Không yêu cầu người dùng phải có kỹ năng lập trình, chỉ cần bạn có hiểu biết một chút về HTML và DOM là đã có thể sử dụng được tool rồi.
  3. Có thể export các test đã tạo để sử dụng trong Webdriver hoặc Selenium RC
  4. Có cung cấp chức năng để bạn có thể report kết quả hoặc các hỗ trợ khi sử dụng
  5. Bạn có thể sử dụng tích hợp với các extension khác nữa.

Nhược điểm:

  1. Là 1 extension mà bạn chỉ có thể cài đặt trên trình duyệt Fire Fox
  2. Nó được thiết kể để tạo các test đơn giản hoặc prototype test
  3. Với IDE thì bạn không thể thực hiện được các tính toán, câu lệnh phức tạp, hay có điều kiện.
  4. Hiệu năng hoạt động thì chậm hơn nhiều so với Webdriver và Selenium RC

Selenium Webdriver

wd

Selenium Webdriver được đánh giá là tốt hơn Selenium IDE và Selenium RC trên rất nhiều các khía cạnh. Selenium Webdriver thực hiện automate tương tác với trình duyệt với hướng tiếp cận hiện đại và ổn định hơn. Các tương tác với trình duyệt được gửi trực tiếp từ Selenium driver mà không thông qua Javascript như selenium RC.

Selenium Webdriver hỗ trợ nhiều các ngôn ngữ lập trình như: Java, C#, PHP, Python, Perl và Ruby.

Ưu điểm:

  1. Communicate trực tiếp với trình duyệt
  2. Tương tác với trình duyệt giống như thao tác của một người dùng thật
  3. Tốc độ nhanh hơn so với Selenium IDE
  4. Thao tác dễ dàng hơn với các phép tính toán logic hay các điều kiện phức tạp

Nhược điểm:

  1. Cài đặt phức tạp hơn so với Selenium IDE
  2. Đòi hỏi người dùng phải có kĩ năng lập trình

Selenium Grid

Về lý thuyết ta có thể hiểu đây là ta xây dựng một Selenium hub dùng để khởi chay nhiều các test thông qua các máy và các trình duyệt khác nhau tại cùng một thời điểm. Có thể hiểu đơn giản thông qua hình dưới đây:

selenium-grid

Trên đây là một số giới thiệu cơ bản nhất về Selenium IDE và Selenium webdriver ngoài ra còn Selenium Grid, mà cái này mình cũng chưa tìm hiểu nhiều, cho nên sẽ nói về sau khi đã tìm hiểu nhiều hơn về nó. Tùy theo điều kiện thực tế của dự án và đặc thù test mình có thể lựa chọn các công cụ phù hợp. Có thể sử dụng độc lập hay kết hợp các tool với nhau tùy mục đích để đạt được hiệu quả công việc cao nhất.