Selenium là gì? Các thành phần của Selenium

Đinh Thao

Trong lĩnh vực công nghệ thông tin, khái niệm về Selenium đã không còn quá xa lạ. Để hiểu rõ về khái niệm và các thành phần của Selenium là gì? Cùng tham khảo bài viết chi tiết dưới đây.

Selenium là gì?

 

Selenium là một công cụ mạnh mẽ để kiểm soát trình duyệt web thông qua chương trình. Nó có chức năng cho tất cả các trình duyệt, hoạt động trên tất cả các hệ điều hành chính và các tệp lệnh của nó được viết bằng nhiều ngôn ngữ khác nhau như Python, Java, C#…. Selenimum có 4 thành phần chính là:

  • Selenium IDE
  • Selenium RC
  • Selenium Webdriver
  • Selenium GRID

Khi Selenium RC và WebDriver kết hợp với nhau tạo thành một framework duy nhất tiếp đó sẽ hợp thành Selenium hai và Selenium một bằng Selenium RC.

Để tận dụng hết sức mạnh tối đa của nó thì bạn có thể  xây dựng một dự án để tiến hành automate các công việc mang tính nhàm chán lặp đi lặp lại các thao tác liên tục.

Các thành phần của Selenium

Selenium là một trong những định nghĩa chung nhất cho việc miêu tả chi tiết về một phần mềm chuyên dụng trong kiểm thử tự động. Mỗi một loại trong nó sẽ đáp ứng được những yêu cầu kiểm thử khác nhau cho từng mục đích sử dụng.

selenium là gì 

Selenium IDE

Là công cụ chính trong Selenium Suite. Nó là một môi trường phát triển tích hợp hoàn chỉnh (IDE) cho các kiểm thử Selenium. Selenium IDE được triển khai dưới dạng tiện ích trình duyệt, cho phép ghi lại, chỉnh sửa và gỡ lỗi các bài kiểm thử chức năng. Selenium IDE ban đầu được tạo ra bởi Shinya Kasatani và tặng cho dự án Selenium vào năm 2006. Trước đây nó ít được bảo trì và bắt đầu được duy trì tích cực vào năm 2018.

Các tập lệnh có thể được tự động ghi lại và chỉnh sửa thủ công, cung cấp hỗ trợ tự động hoàn thành và khả năng di chuyển các lệnh xung quanh một cách nhanh chóng. Các tập lệnh được ghi bằng Selenese, một ngôn ngữ tập lệnh kiểm thử đặc biệt dành cho Selenium. Selenese cung cấp các lệnh để thực hiện các hành động trong trình duyệt (nhấp vào liên kết, chọn một tùy chọn) và để truy xuất dữ liệu từ các trang kết quả.

selenium ide 

Selenium RC

Selenium Remote Control (RC) là một máy chủ được viết bằng Java, chấp nhận các lệnh cho trình duyệt thông qua HTTP. RC cho phép viết các bài kiểm thử tự động cho ứng dụng web bằng kỳ ngôn ngữ lập trình nào. Cho phép tích hợp Selenium tốt hơn trong các khung kiểm thử đơn vị hiện có. Để làm cho các bài kiểm thử được viết dễ dàng hơn.

Selenium hiện cung cấp trình điều khiển máy khách cho PHP, Python, Ruby, . NET, Perl và Java. Trình điều khiển Java cũng có thể được sử dụng với Javascript (thông qua công cụ Rhino). Cần có một phiên bản của máy chủ Selenium RC để khởi chạy test case html – có nghĩa là cổng phải khác nhau cho mỗi lần chạy song song. Tuy nhiên, đối với test case Java/ PHP, chỉ cần một phiên bản Selenium RC chạy liên tục.

selenium RC 

Selenium WebDriver

Đây là phiên bản kế thừa của Selenium RC. Selenium Webdriver chấp nhận các lệnh (được gửi bằng Selenese hoặc thông qua API ứng dụng khách) và gửi chúng tới trình duyệt. Điều này được thực hiện thông qua trình điều khiển trình duyệt dành riêng, trình điều khiển này sẽ gửi lệnh tới trình duyệt và truy xuất kết quả. Hầu hết các trình điều khiển trình duyệt thực sự khởi chạy và truy cập một ứng dụng trình duyệt (Firefox, Chrome…) Ngoài ra còn có trình điều khiển trình duyệt HtmlUnit

Selenium WebDriver không cần máy chủ đặc biệt để thực hiện kiểm thử. Thay vào đó, nó trực tiếp khởi động một phiên bản trình duyệt và điều khiển. Tuy nhiên, Selenium Grid có thể được sử dụng với WebDriver để thực hiện kiểm tra trên các hệ thống từ xa. Nếu có thể, WebDriver sử dụng chức năng cấp hệ điều hành gốc thay vì các lệnh Javaccript dựa trên trình duyệt để điều khiển trình duyệt. Điều này bỏ qua các vấn đề về sự khác biệt giữa các lệnh gốc và lệnh Javaccript, bao gồm cả các hạn chế về bảo mật.

selenium webdriver

Selenium Grid

Là một máy chủ cho phép kiểm thử sử dụng các phiên bản trình duyệt Web chạy trên các hệ thống từ xa. Với Grid, một máy chủ đóng vai trò là trung tâm. Các kiểm thử liên lạc với trung tâm để có quyền truy cập vào các phiên bản trình duyệt. Trung tâm có một danh sách các máy chủ cấp quyền truy cập vào các phiên bản trình duyệt (các nút Webdriver) và cho phép kiểm thử sử dụng các phiên bản này. Selenium Grid cho phép chạy kiểm thử song song trên nhiều máy và quản lý tập trung các phiên bản trình duyệt và cấu hình trình duyệt khác nhau (thay vì từng kiểm thử riêng lẻ)

Khả năng chạy kiểm thử trên các phiên bản trình duyệt từ xa rất hữu ích để phân bổ tải kiểm thử trên một số máy và chạy kiểm thử trong các trình duyệt chạy trên các nền tảng hoặc hệ điều hành khác nhau. Cái sau đặc biệt hữu ích trong trường hợp không phải tất cả các trình duyệt được sử dụng để kiểm thử đều có thể chạy trên cùng một nền tảng.

selenium gird 

Đặc trưng của Selenium

  • Một framework kiểm thử web di động và mã nguồn mở
  • Là sự kết hợp giữa các công cụ và DSL (Ngôn ngữ dành riêng cho miền) để thực hiện các loại kiểm thử khác nhau
  • Các lệnh Selenium được phân loại theo các lớp khác nhau giúp dễ hiểu và triển khai hơn
  • Selenium hỗ trợ thực hiện kiểm thử song song , giúp giảm thời gian thực hiện
  • Yêu cầu ít tài nguyên hơn khi so sánh với các đối thủ cạnh tranh như UFT, RFT…
  • Hỗ trợ nhiều ngôn ngữ lập trình: C#, Java, Python, PHP, Ruby, Perl và JavaScript và hệ điều hành: ndroid, iOS, Windows, Linux, Mac, Solaris
  • Hỗ trợ nhiều trình duyệt: Google Chrome, Mozilla Firefox, Internet Explorer, Edge, Opera, Safari…

Hạn chế của Selenium

  • Không hỗ trợ kiểm thử cho các ứng dụng dành cho máy tính để bàn
  • Selenium yêu cầu chuyên môn của nhóm phát triển và các nguồn lực để quản lý
  • Selenium là một framework nặng về bảo trì và rất khó mở rộng quy mô khi một framework phát triển
  • Vì là mã nguồn mở nên người ta phải dựa vào các diễn đàn cộng đồng để giải quyết các vấn đề kỹ thuật của bạn.
  • Không thể thực hiện kiểm thử tự động trên các dịch vụ Web như SOAP hoặc REST bằng Selenium
  • Không có bất kỳ khả năng báo cáo sẵn nào, người ta phải dựa vào các plugin cài thêm như JUnit, TestNG để có báo cáo kiểm thử
  • Không thể thực hiện kiểm tra trên hình ảnh. Cần phải tích hợp Selenium với Sikuli để kiểm tra hình ảnh
5/5 - (2 votes)
Từ khóa:
Bình luận
Icon Phone Icon Zalo