12/08/2018, 16:18

Selenium Testing (Phần 1)

Selenium là gì? Selenium là công cụ kiểm thử tự động miễn phí (mã nguồn mở) dành cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau. Selenium tập trung vào việc tự động hoá các ứng dụng dựa trên web. Kiểm thử được thực hiện bằng cách sử dụng công cụ Selenium thường được gọi là ...

Selenium là gì?

  • Selenium là công cụ kiểm thử tự động miễn phí (mã nguồn mở) dành cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau.
  • Selenium tập trung vào việc tự động hoá các ứng dụng dựa trên web. Kiểm thử được thực hiện bằng cách sử dụng công cụ Selenium thường được gọi là Kiểm thử Selenium.
  • Selenium không chỉ là một công cụ mà còn là một bộ phần mềm, mỗi bộ đều đáp ứng nhu cầu kiểm tra khác nhau của một tổ chức.
  • Nó gồm bốn thành phần bên dưới:
    • Selenium Integrated Development Environment (IDE)
    • Selenium Remote Control (RC)
    • WebDriver
    • Selenium Grid

Giới thiệu tóm tắt Selenium IDE Selenium Integrated Development Environment (IDE) là framework đơn giản nhất trong bộ Selenium và là cách đơn giản nhất để học. Đây là một plugin của Firefox mà bạn có thể cài đặt dễ dàng như 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ư là một công cụ tạo mẫu . Nếu bạn muốn tạo các trường hợp kiểm thử nâng cao hơn, bạn sẽ cần phải sử dụng Selenium RC hoặc WebDriver.

Ưu Điểm Nhược Điểm
Dễ dàng cài đặt và sử dụng Chỉ có trong Firefox
Không yêu cầu kinh nghiệm lập trình, chỉ cần có kiến thức HTML và DOM Thiết kế chỉ để tạo mẫu của kiểm thử
Có thể export test sang định dạng được sử dụng trong Selenium RC và Webdriver Không cung cấp sự lặp lại hoặc câu lệnh có điều kiện cho tập lệnh kiểm tra
Được xây dựng để có thể report kết quả Thực hiện kiểm thử chậm so với Selenium RC và webdriver
Cung cấp hỗ trợ cho các phần mở rộng

Giới thiệu tóm tắt Selenium Remote Control (Selenium RC) Selenium RC là framework kiểm thử 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 . Tính đến 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
Ưu Điểm Nhược Điểm
Nhiều trình duyệt và đa nền tảng Cài đặt phức tạp hơn IDE
Có thể hỗ trợ việc lặp lại hoặc câu lệnh có điều kiện cho tập lệnh kiểm tra Yêu cầu phải có kiến thức lập trình
Có thể hỗ trợ kiểm tra theo dữ liệu Cần phải có Selenium RC Server để chạy
Đã hoàn chỉnh API API có các lệnh thừa và khó hiểu
Có thể sẵn sàng hỗ trợ các trình duyệt mới Tương tác với trình duyệt ít hơn thực tế
Thực hiện nhanh hơn IDE Kết quả không phù hợp và sử dụng Javascript
Thời gian thực thi chậm hơn Web Driver

Giới thiệu tóm tắt WebDriver WebDriver chứng tỏ rằng nó tốt hơn cả Selenium IDE và Selenium RC về nhiều mặt. Nó thực hiện một cách hiện đại và ổn định hơn trong tự động hoá các hành động của trình duyệt. WebDriver, không giống như Selenium RC, không dựa vào JavaScript dành cho tự động hóa. Nó điều khiển trình duyệt bằng cách trực tiếp liên lạc với nó. Các ngôn ngữ được hỗ trợ giống với những ngôn ngữ trong Selenium RC.

  • Java
  • C #
  • PHP
  • Python
  • Perl
  • Ruby
Ưu Điểm Nhược Điểm
Cài đặt đơn giản hơn Selenium RC Lắp đặt phức tạp hơn Selenium IDE
Giao tiếp trực tiếp với trình duyệt Yêu cầu kiến thức lập trình
Sự tương tác của trình duyệt thực tế hơn Không thể sẵn sàng hỗ trợ các trình duyệt mới
Không cần một thành phần riêng biệt như RC Server Không có cơ chế tích hợp để ghi lại các thông điệp thời gian chạy và tạo ra các kết quả kiểm tra
Thời gian thực hiện nhanh hơn IDE và RC

Selenium Grid Selenium Grid là một công cụ được sử dụng cùng với Selenium RC để chạy thử nghiệm 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 test case cùng một lúc. Tính năng, đặc điểm:

  • Cho phép chạy đồng thời các test case trong nhiều trình duyệt và môi trường.
  • Tiết kiệm nhiều thời gian.
  • Sử dụng khái niệm hub-and-nodes . Hub hoạt động như một nguồn chính của lệnh Selenium cho mỗi kết nối với nó.

Lưu ý về Trình duyệt và hỗ trợ Môi trường Do sự khác biệt về kiến trúc, 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
    • Hỗ trợ trình duyệt: Mozilla Firefox
    • Hệ điều hành: Windows, Mac OS X, Linux
  • WebDriver
    • Hỗ trợ trình duyệt:
      • Internet Explorer phiên bản 6 đến 11, cả 32 và 64-bit.
      • Microsoft Edge phiên bản 12.10240 trở lên (một phần hỗ trợ một số chức năng đang được phát triển).
      • Firefox 3.0 trở lên.
      • Google Chrome 12.0. trở lê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ị & bộ mô phỏng).
      • IOS 3+ cho điện thoại (thiết bị & người giả lập) và 3,2+ dành cho máy tính bảng (thiết bị và trình giả lập).
      • HtmlUnit 2.9 trở lên
    • Hệ điều hành: Tất cả các hệ điều hành mà các trình duyệt ở trên có thể chạy.

Làm thế nào để lựa chọn Công cụ Selenium phù hợp với nhu cầu của bạn

  • Selenium IDE
    • Tại sao chọn ?
      • Để tìm hiểu về các khái niệm về kiểm thử tự động và Selenium, bao gồm:
        • Các lệnh Selenese như kiểu, mở, clickAndWait, khẳng định, xác minh, v.v ...
        • Vị trí như id, tên, xpath, css selector, v.v ...
        • Thực hiện mã JavaScript tùy chỉnh bằng cách sử dụng lệnh runScript
        • Xuất các trường hợp thử nghiệm ở các định dạng khác nhau.
      • Tạo các bài kiểm tra có ít hoặc không có kiến thứ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 RC hoặc WebDriver.
      • Để kiểm tra một ứng dụng web chỉ với Firefox.
  • Selenium RC
    • Tại sao chọn ?
      • Thiết kế một bài kiểm tra sử dụng một ngôn ngữ biểu cảm hơn Selenese
      • Để chạy thử nghiệm của bạn đối 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 thử nghiệm của bạn trên nhiều môi trường sử dụng Selenium Grid.
      • Để kiểm tra ứng dụng của bạn đối với 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
    • Tại sao chọn ?
      • Để 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 kiểm tra trên trình duyệt HtmlUnit.
      • Để tạo ra các kết quả kiểm tra tùy chỉnh.
  • Selenium Grid
    • Tại sao chọn ?
      • Để chạy 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ộ phần mềm kiểm tra khổng lồ, cần phải hoàn thành trong thời gian sớm nhất có thể.

Một sự so sánh giữa Selenium và QTP (nay 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 nó được mua lại bởi Hewlett-Packard vào năm 2006. Bộ công cụ Selenium có nhiều ưu điểm hơn QTP, chi tiết như dưới đây:

Ưu điểm của Selenium qua QTP:

Selenium QTP
Mã nguồn mở , miễn phí để sử dụng Thương mại
Khả năng mở rộng cao Bổ sung tiệ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ợ các 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 thử nghiệm ứng dụng trên điện thoại di động (iOS và Android) bằng giải pháp HP được gọi là - HP Mobile Center
Có thể thực hiện các bài kiểm tra trong khi trình duyệt được giảm thiểu Cần phải có ứng dụng được thử nghiệm để hiển thị trên màn hình
Có thể thực hiện các phép thử song song Chỉ có thể thực hiện song song nhưng sử dụng Trung tâm Chất lượng lại là sản phẩm đã trả phí.

Ưu điểm của QTP trên Selenium:

QTP Selenium
Có thể kiểm tra cả ứng dụng web và máy tính để bàn Chỉ có thể thử nghiệm các ứng dụng web
Đi kèm với một kho lưu trữ đối tượng được xây dựng sẵn Không có kho đối tượng được xây dựng
Tự động nhanh hơn Selenium bởi vì nó là một IDE hoàn toàn đặc trưng. Tự động 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 có thể được sử dụng để phát triển
Thử nghiệm theo hướng dữ liệu được thực hiện dễ dàng hơn bởi vì nó có tích hợp các bảng dữ liệu cục bộ và cục bộ . Thử nghiệm theo hướng dữ liệu phức tạp hơn vì bạn phải dựa vào khả năng của ngôn ngữ lập trình để cài đặt các giá trị cho dữ liệu thử nghiệm
Có thể truy cập các điều khiển bên trong trình duyệt (chẳng hạn như thanh yêu thích, thanh địa chỉ, nút Back and Forward, v.v.) Không thể truy cập 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 đang được cung cấp.
Có khả năng tự xuất dữ liệu thử nghiệm sang các định dạng bên ngoài Không có khả năng tự xuất dữ liệu thời gian chạy vào định dạng bên ngoài
Hỗ trợ Thông số được xây dựng Thông số 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 thử nghiệm được tạo tự động Không hỗ trợ bản địa để tạo ra các báo cáo thử nghiệm / lỗi.

Mặc dù rõ ràng, QTP có nhiều khả năng tiên tiến hơn, Selenium vượt trội 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 (cái gì mà QTP có khả năng nhưng chỉ với việc sử dụng Trung tâm Chất lượng)

Tóm lược

  • Toàn bộ bộ công cụ Selenium bao gồm bốn thành phần:
    • Selenium IDE , một add-on của Firefox mà bạn chỉ có thể sử dụng trong việc tạo các trường hợp thử nghiệm tương đối đơn giản và các bộ phần mềm thử nghiệm.
    • Điều khiển từ xa Selenium , 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 các 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 kiểm tra của bạn liên lạc 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 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 sáp nhập để tạo ra Selenium 2 .
  • Selenium là thuận lợi hơn QTP về chi phí và tính linh hoạt . Nó cũng cho phép bạn chạy thử nghiệm song song , không giống như trong QTP, nơi bạn chỉ được phép chạy thử nghiệm theo tuần tự.

Nguồn tham khảo: https://www.guru99.com/introduction-to-selenium.html

0