Selenium là gì?

Selenium là automated testing framework (mã nguồn mở) miễn phí được sử dụng để xác thực các ứng dụng web trên các trình duyệt và nền tảng khác nhau. Bạn có thể sử dụng nhiều ngôn ngữ lập trình như Java, C #, Python, v.v. để tạo Tập lệnh kiểm tra Selenium. Kiểm tra được thực hiện bằng công cụ kiểm tra Selenium thường được gọi là Kiểm tra Selenium.

Phần mềm Selenium không chỉ là một công cụ đơn lẻ mà là một bộ phần mềm, mỗi phần mềm phục vụ cho các nhu cầu kiểm tra Selenium QA khác nhau của một tổ chức. Đây là danh sách các công cụ

  • Môi trường phát triển tích hợp Selenium (IDE)
  • Điều khiển từ xa Selenium (RC)
  • WebDriver
  • Lưới Selenium

 

Giới thiệu về Selenium

 

Hiện tại, Selenium RC và WebDriver được hợp nhất thành một framework duy nhất để tạo thành Selenium 2 . , Selenium 1 đề cập đến Selenium RC. 

Ai đã phát triển Selenium?

Vì Selenium là một tập hợp các công cụ khác nhau, nó cũng có các nhà phát triển khác nhau. Dưới đây là những người chủ chốt đã có những đóng góp đáng chú ý cho Dự án Selenium

Chủ yếu, Selenium được tạo ra bởi Jason Huggins vào năm 2004 . Một kỹ sư tại ThoughtWorks, anh ấy đang làm việc trên một ứng dụng web yêu cầu kiểm tra thường xuyên. Nhận thấy rằng việc Kiểm tra thủ công lặp đi lặp lại đối với ứng dụng của họ ngày càng trở nên kém hiệu quả hơn, anh ấy đã tạo ra một chương trình JavaScript sẽ tự động kiểm soát các hành động của trình duyệt. Ông đặt tên chương trình này là ” JavaScriptTestRunner .”

Nhìn thấy tiềm năng trong ý tưởng này để giúp tự động hóa các ứng dụng web khác, anh ấy đã tạo ra mã nguồn mở JavaScriptRunner, sau này được đổi tên thành  Selenium Core .

Vấn đề về Chính sách Xuất xứ Giống nhau

Chính sách Same Origin cấm mã JavaScript truy cập các phần tử từ một miền khác với nơi nó được khởi chạy . Ví dụ, mã HTML trong www.google.com sử dụng chương trình JavaScript “randomScript.js”. Chính sách nguồn gốc tương tự sẽ chỉ cho phép randomScript.js truy cập các trang trong google.com, chẳng hạn như google.com/mail, google.com/login hoặc google.com/signup. Tuy nhiên, nó không thể truy cập các trang từ các trang khác nhau như yahoo.com/search hoặc guru99.com vì chúng thuộc các miền khác nhau.

Đây là lý do tại sao trước Selenium RC, người kiểm tra cần cài đặt các bản sao cục bộ của cả Selenium Core (một chương trình JavaScript) và máy chủ web chứa ứng dụng web đang được kiểm tra để chúng thuộc cùng một miền

Sự ra đời của Điều khiển từ xa Selenium (Selenium RC)

Không may; người thử nghiệm sử dụng Selenium Core đã phải cài đặt toàn bộ ứng dụng đang được thử nghiệm và máy chủ web trên máy tính cục bộ của chính họ vì các hạn chế do cùng một chính sách nguồn gốc áp đặt Vì vậy, một kỹ sư khác của ThoughtWork, Paul Hammant , đã quyết định tạo một máy chủ hoạt động như một proxy HTTP để “lừa” trình duyệt tin rằng Selenium Core và ứng dụng web đang được thử nghiệm đến từ cùng một miền. Hệ thống này được gọi là Điều khiển từ xa Selenium hoặc Selenium 1 .

Sự ra đời của Selenium Grid

Selenium Grid được phát triển bởi Patrick Lightbody để giải quyết nhu cầu giảm thiểu thời gian thực thi kiểm tra càng nhiều càng tốt. Ban đầu anh ấy gọi hệ thống là ” Hosted QA .” Nó có khả năng chụp ảnh màn hình trình duyệt trong các giai đoạn quan trọng, đồng thời gửi các lệnh Selenium đến các máy khác nhau cùng một lúc.

Sự ra đời của Selenium IDE

Shinya Kasatani của Nhật Bản đã tạo ra Selenium IDE , một tiện ích mở rộng của Firefox có thể tự động hóa trình duyệt thông qua tính năng ghi và phát lại. Ông đã đưa ra ý tưởng này để tăng thêm tốc độ trong việc tạo các trường hợp thử nghiệm. Ông đã tặng Selenium IDE cho Dự án Selenium vào năm 2006 .

Sự ra đời của WebDriver

Simon Stewart  đã tạo ra WebDriver vào khoảng  năm 2006  khi các trình duyệt và ứng dụng web ngày càng trở nên mạnh mẽ hơn và hạn chế hơn với các chương trình JavaScript như Selenium Core. Đây là khung thử nghiệm đa nền tảng đầu tiên có thể kiểm soát trình duyệt từ cấp hệ điều hành.

Sự ra đời của Selenium 2

Năm 2008 , cả Nhóm Selenium đã quyết định hợp nhất WebDriver và Selenium RC để tạo thành một công cụ mạnh mẽ hơn gọi là Selenium 2 , với WebDriver là cốt lõi . Hiện tại, Selenium RC vẫn đang được phát triển nhưng chỉ ở chế độ bảo trì. Hầu hết các nỗ lực của Dự án Selenium hiện đang tập trung vào Selenium 2.

Vì vậy, tại sao lại có tên là Selenium?

Tên Selenium đến từ một trò đùa mà Jason đã bẻ khóa một lần cho nhóm của mình. Trong quá trình phát triển của Selenium, một khung kiểm tra tự động khác đã được công ty phổ biến có tên là Mercury Interactive (vâng, công ty ban đầu đã tạo ra QTP trước khi được HP mua lại). Vì Selenium là một loại thuốc giải độc nổi tiếng cho chứng nhiễm độc Thủy ngân, Jason đề nghị tên đó và đồng đội của anh ta lấy nó. Vì vậy, đó là cách chúng tôi gọi khuôn khổ này cho đến nay.

Giới thiệu tóm tắt Selenium IDE

Môi trường phát triển tích hợp Selenium (IDE) là khung đơn giản nhất trong bộ Selenium và là khung dễ học nhất . Đây là một plugin của Firefox mà bạn có thể cài đặt dễ dàng bằng các plugin khác. Tuy nhiên, vì tính đơn giản của nó, Selenium IDE chỉ nên được sử dụng như một công cụ tạo mẫu . Nếu bạn muốn tạo các trường hợp thử nghiệm nâng cao hơn, bạn sẽ cần sử dụng Selenium RC hoặc WebDriver.

Giới thiệu tóm tắt Điều khiển từ xa Selenium (Selenium RC)

Selenium RC là  khung thử nghiệm hàng đầu của toàn bộ dự án Selenium trong một thời gian dài. Đây là công cụ kiểm tra web tự động đầu tiên cho phép người dùng sử dụng ngôn ngữ lập trình mà họ thích . Kể từ phiên bản 2.25.0, RC có thể hỗ trợ các ngôn ngữ lập trình sau:

  • Java
  • C #
  • PHP
  • Python
  • Perl
  • Ruby

Giới thiệu tóm tắt WebDriver

WebDriver chứng tỏ mình tốt hơn cả Selenium IDE và Selenium RC về nhiều mặt. Nó thực hiện một cách tiếp cận hiện đại và ổn định hơn trong việc tự động hóa các hành động của trình duyệt. WebDriver, không giống như Selenium RC, không dựa trên JavaScript để kiểm tra tự động hóa Selenium. Nó kiểm soát trình duyệt bằng cách giao tiếp trực tiếp với nó.

Các ngôn ngữ được hỗ trợ cũng giống như các ngôn ngữ trong Selenium RC.

  • Java
  • C #
  • PHP
  • Python
  • Perl
  • Ruby

Grid Selenium

Selenium Grid là một công cụ được sử dụng cùng với Selenium RC để chạy các bài kiểm tra song song trên các máy khác nhau và các trình duyệt khác nhau cùng một lúc. Thực hiện song song có nghĩa là chạy nhiều thử nghiệm cùng một lúc.

Đặc trưng:

  • Cho phép chạy đồng thời các bài kiểm tra trong nhiều trình duyệt và môi trường.
  • Tiết kiệm thời gian  rất nhiều.
  • Sử dụng khái niệm hub-and-node . Trung tâm hoạt động như một nguồn trung tâm của các lệnh Selenium cho mỗi nút được kết nối với nó.

Lưu ý về Hỗ trợ Trình duyệt và Môi trường

Do sự khác biệt về kiến ​​trúc của chúng, Selenium IDE, Selenium RC và WebDriver hỗ trợ các bộ trình duyệt và môi trường hoạt động khác nhau.

Selenium IDE WebDriver
Hỗ trợ trình duyệt Mozilla Firefox Internet Explorer phiên bản 6 đến 11, cả

Microsoft Edge 32 và 64-bit phiên bản 12.10240 trở lên (hỗ trợ một phần một số chức năng đang được phát triển)
Firefox 3.0 trở lên
Google Chrome 12.0. và trên
Opera 11.5 trở lên
Android – 2.3 trở lên dành cho điện thoại và máy tính bảng
(thiết bị & giả lập)

iOS 3+ cho điện thoại (thiết bị & giả lập) và 3.2+ cho máy tính bảng (thiết bị & giả lập)

HtmlUnit 2.9 trở lên

Hệ điều hành Windows, Mac OS X, Linux Tất cả các hệ điều hành mà các trình duyệt ở trên có thể chạy.

Lưu ý: Selenium WebDriver được gọi là phiên bản kế thừa của Selenium RC đã không còn được sử dụng và được công bố chính thức bởi SeleniumHQ.

Cách chọn công cụ Selenium phù hợp cho nhu cầu của bạn

Dụng cụ
Tại sao lại chọn?
Selenium IDE
  • Để tìm hiểu về các khái niệm về kiểm thử tự động và Selenium, bao gồm:
  • Chọn các lệnh như gõ, mở, clickAndWait, khẳng định, xác minh, v.v.
  • Các bộ định vị như id, name, xpath, css selector, v.v.
  • Thực thi mã JavaScript tùy chỉnh bằng runScript
  • Xuất các trường hợp kiểm thử ở nhiều định dạng khác nhau.
  • Để tạo các bài kiểm tra với ít hoặc không có kiến ​​thức trước đó về lập trình.
  • Để tạo các trường hợp thử nghiệm đơn giản và bộ thử nghiệm mà bạn có thể xuất sau này sang RC hoặc WebDriver.
  • Để kiểm tra một ứng dụng web chỉ trên Firefox và Chrome.
Selenium RC
  • Để thiết kế bài kiểm tra bằng ngôn ngữ biểu cảm hơn Selenese
  • Để chạy thử nghiệm của bạn với các trình duyệt khác nhau (ngoại trừ HtmlUnit) trên các hệ điều hành khác nhau.
  • Để triển khai các thử nghiệm của bạn trên nhiều môi trường bằng cách sử dụng Selenium Grid.
  • Để kiểm tra ứng dụng của bạn trên một trình duyệt mới hỗ trợ JavaScript.
  • Để kiểm tra các ứng dụng web với các kịch bản dựa trên AJAX phức tạp.
WebDriver
  • Để sử dụng một ngôn ngữ lập trình nhất định trong việc thiết kế trường hợp thử nghiệm của bạn.
  • Để kiểm tra các ứng dụng có nhiều chức năng dựa trên AJAX.
  • Để thực hiện các bài kiểm tra trên trình duyệt HtmlUnit.
  • Để tạo kết quả kiểm tra tùy chỉnh.
Lưới Selenium
  • Để chạy các tập lệnh Selenium RC của bạn trong nhiều trình duyệt và hệ điều hành đồng thời.
  • Để chạy một bộ thử nghiệm khổng lồ, cần phải hoàn thành trong thời gian sớm nhất có thể.

So sánh giữa Selenium và QTP (bây giờ là UFT)

Quick Test Professional (QTP) là một công cụ kiểm tra tự động độc quyền trước đây thuộc sở hữu của công ty Mercury Interactive trước khi được Hewlett-Packard mua lại vào năm 2006 . Bộ công cụ Selenium có nhiều ưu điểm so với QTP như được trình bày chi tiết bên dưới:

Ưu điểm và lợi ích của Selenium so với QTP

Selen
QTP
Mã nguồn mở , sử dụng miễn phí và miễn phí. Thương mại .
Khả năng mở rộng cao Tiện ích bổ sung hạn chế
Có thể chạy thử nghiệm trên các trình duyệt khác nhau Chỉ có thể chạy thử nghiệm trong Firefox , Internet Explorer và Chrome
Hỗ trợ nhiều hệ điều hành khác nhau Chỉ có thể được sử dụng trong Windows
Hỗ trợ thiết bị di động QTP Hỗ trợ tự động hóa kiểm tra ứng dụng dành cho thiết bị di động (iOS và Android) bằng giải pháp HP có tên – HP Mobile Center
Có thể thực hiện các bài kiểm tra trong khi các trình duyệt được giảm thiểu Cần có ứng dụng đang được thử nghiệm để hiển thị trên máy tính để bàn
Có thể thực hiện các bài kiểm tra song song . Chỉ có thể thực hiện song song nhưng sử dụng Trung tâm chất lượng, một sản phẩm lại là sản phẩm trả phí.

Ưu điểm của QTP so với Selenium

Ưu điểm của QTP so với Selenium
QTP
Selen
Có thể kiểm tra cả ứng dụng web và máy tính để bàn Chỉ có thể kiểm tra các ứng dụng web
Đi kèm với kho đối tượng tích hợp sẵn Không có kho lưu trữ đối tượng tích hợp sẵn
Tự động hóa nhanh hơn Selenium vì nó là một IDE đầy đủ tính năng. Tự động hóa với tốc độ chậm hơn vì nó không có IDE gốc và chỉ IDE của bên thứ ba mới có thể được sử dụng để phát triển
Kiểm tra theo hướng dữ liệu dễ thực hiện hơn vì nó có các bảng dữ liệu cục bộ và toàn cầu được tích hợp sẵn . Kiểm tra theo hướng dữ liệu cồng kềnh hơn vì bạn phải dựa vào khả năng của ngôn ngữ lập trình để đặt giá trị cho dữ liệu kiểm tra của mình
Có thể truy cập các điều khiển trong trình duyệt (chẳng hạn như thanh Yêu thích, thanh Địa chỉ, các nút Quay lại và Chuyển tiếp, v.v.) Không thể truy cập các phần tử bên ngoài ứng dụng web đang được kiểm tra
Cung cấp hỗ trợ khách hàng chuyên nghiệp Không có hỗ trợ người dùng chính thức nào được cung cấp.
Có khả năng tự nhiên để xuất dữ liệu thử nghiệm sang các định dạng bên ngoài Không có khả năng gốc để xuất dữ liệu thời gian chạy sang các định dạng bên ngoài
Hỗ trợ tham số hóa được xây dựng Việc tham số hóa có thể được thực hiện thông qua lập trình nhưng rất khó thực hiện.
Báo cáo kiểm tra được tạo tự động Không có hỗ trợ riêng để tạo báo cáo thử nghiệm / lỗi.

Mặc dù rõ ràng, QTP có nhiều khả năng nâng cao hơn, Selenium vượt trội hơn QTP trong ba lĩnh vực chính:

  • Chi phí (vì Selenium hoàn toàn miễn phí)
  • Tính linh hoạt (vì một số ngôn ngữ lập trình, trình duyệt và nền tảng mà nó có thể hỗ trợ)
  • Kiểm tra song song (một cái gì đó mà QTP có khả năng nhưng chỉ khi sử dụng Trung tâm chất lượng)

Tóm lược

  • Toàn bộ Bộ kiểm tra phần mềm Selenium bao gồm bốn thành phần:
  • Selenium IDE, một tiện ích bổ sung của Firefox mà bạn chỉ có thể sử dụng để tạo các trường hợp thử nghiệm và bộ thử nghiệm tương đối đơn giản.
  • Selenium Remote Control, còn được gọi là Selenium 1, là công cụ Selenium đầu tiên cho phép người dùng sử dụng ngôn ngữ lập trình để tạo các bài kiểm tra phức tạp.
  • WebDriver, bước đột phá mới hơn cho phép các tập lệnh thử nghiệm của bạn giao tiếp trực tiếp với trình duyệt, do đó kiểm soát nó từ cấp hệ điều hành.
  • Selenium Grid cũng là một công cụ được sử dụng với Selenium RC để thực hiện các bài kiểm tra song song trên các trình duyệt và hệ điều hành khác nhau.
  • Selenium RC và WebDriver được hợp nhất để tạo thành Selenium 2.
  • Selenium có lợi thế hơn QTP về chi phí và tính linh hoạt. Nó cũng cho phép bạn chạy các bài kiểm tra song song, không giống như trong QTP, nơi bạn chỉ được phép chạy các bài kiểm tra một cách tuần tự.
Back to top button