Trang chủ » Selenium là gì? Tìm hiểu về bộ công cụ Selenium

Selenium là gì? Tìm hiểu về bộ công cụ Selenium

Admin

Kiểm thử là giai đoạn quan trọng nhất trong vòng đời phát triển phần mềm và mục tiêu chính của nó là đảm bảo phần mềm không có lỗi, đáp ứng được yêu cầu của khách hàng. Kiểm thử là một quá trình rất vất vả vì nó liên quan đến việc thực hiện thủ thông các trường hợp kiểm thử đối với các ứng dụng khác nhau để phát hiện lỗi và sai sót.

Nhưng nếu chúng ta có thể tự động hóa quá trình kiểm thử thì sao? Điều đó sẽ làm cho quá trình bớt đơn điệu hơn và Selenium làm được điều này. Hãy cùng chúng tôi tìm hiểu về Selenium là gì, nhưng trước tiên hãy xem những thách thức đối với kiểm thử thủ công

Những thách thức đối với kiểm thử thủ công

selenium là gì

Kiểm thử thủ công là một trong những cách cơ bản của kiểm thử phần mềm. Nó không yêu cầu kiến thức về bất kỳ công cụ kiểm thử nào và thực tế có thể kiểm thử bất kỳ ứng dụng nào.

Trình kiểm thử thực hiện thủ công các test case đối với các ứng dụng và so sánh kết quả thực tế với kết quả mong muốn. Bất kỳ sự khác biệt nào giữa 2 điều này đều được coi là lỗi và được khắc phục ngay lập tức. Các kiểm thử sau đó được chạy lại để đảm bảo một ứng dụng hoàn toàn không có lỗi.

Kiểm thử thủ công có nhược điểm riêng của nó, tuy nhiên một vài trong số đó có thể bao gồm:

  • Cực kỳ tốn thời gian
  • Nguy cơ sai sót cao
  • Yêu cầu sự có mặt của tester 24/7
  • Yêu cầu tạo nhật ký thủ công
  • Có phạm vi giới hạn

Sự xuất hiện của Selenium

Jason Huggins, một kỹ sư tại ThoughtWorks, Chicago, nhận thấy việc kiểm thử thủ công lặp đi lặp lại và nhàm chán. Anh ấy đã phát triển một chương trình Javascript để tự động kiểm thử ứng dụng web, được gọi là JavaScriptTestRunner. 

Ban đầu, phát minh mới được triển khai bởi các nhân viên tại Thoughtworks. Tuy nhiên, vào năm 2004, nó được đổi tên thành Selenium và trở thành mã nguồn mở. Kể từ khi thành lập, Selenium đã là một công cụ kiểm thử tự động mạnh mẽ để kiểm tra các ứng dụng web khác nhau trên các nền tảng khác nhau.

Selenium là gì?

selenium la gì

Selenium là công cụ kiểm thử tự động mã nguồn mở được sử dụng để kiểm tra các ứng dụng web trên nhiều trình duyệt khác nhau. Thật không may, Selenium chỉ có thể kiểm tra các ứng dụng web, vì vậy không thể kiểm tra các ứng dụng dành cho máy tính để bàn và thiết bị di động. Tuy nhiên các công cụ khác như Appium và QTP có thể được sử dụng để thực hiện những điều đó.

Tại sao Selenium được sử dụng rộng rãi

  • Dễ sử dụng vì chủ yếu được phát triển bằng Javascript
  • Có thể kiểm thử ứng dụng web trên nhiều trình duyệt khác nhau như Firefox, Chrome, Opera và Safari.
  • Các bài kiểm thử có thể được mã hóa bằng một số ngôn ngữ lập trình như Java, Python, Perl, PHP, Ruby.
  • Selenium độc lập với nền tảng, có nghĩa là nó có thể triển khai trên Windows, Linux…
  • Tích hợp được với các công cụ như JUnit và TestNG để quản lý kiểm thử

Bộ công cụ Selenium

Selenium IDE

Selenium IDE

Được Shinya Kasatani phát triển vào năm 2006, Selenium IDE là một tiện ích mở rộng dành cho Firefox, Chrome giúp tự động hóa chức năng. Thông thường, IDE ghi lại các tương tác của người dùng trên trình duyệt và xuất chúng dưới dạng tập lệnh có thể tái sử dụng. 

IDE được phát triển để tăng tốc độ tạo các tập lệnh tự động. Đây là một công cụ tạo mẫu nhanh và có thể được sử dụng bảo các kỹ sư không có kiến thức về lập trình.

IDE đã ngừng phát triển vào tháng 8 năm 2017 khi Firefox nâng cấp lên phiên bản Firefox 55 mới, không còn hỗ trợ Selenium IDE. Applitools đã viết lại Selenium IDE cũ và phát hành phiên bản mới vào năm 2019. Phiên bản mới nhất có một số cải tiến. 

Selenium IDE vẫn còn gặp phải một số thiếu sót sau:

  • Không hỗ trợ kiểm thử theo hướng dữ liệu
  • Không thực hiện được kiểm tra cơ sở dữ liệu
  • Không cung cấp được báo cáo kiểm thử chi tiết
  • Không thể xuất sang tập lệnh Webdriver

Selenium Remote Control (RC)

selenium rc

Paul Hammant đã phát triển Selenium RC. Ban đầu, một công cụ có tên là Selenium-Core được xây dựng. Đó là một tập hợp các hàm Javascript diễn giải và thực thi các lệnh Selenese bằng trình thông dịch Javascript tích hợp của trình duyệt. Selenium-Core sau đó được đưa vào trình duyệt web. 

Bây giờ, hãy xem xét một Javascript, test.js được sử dụng bởi google.com. Chương trình này có thể truy cập các trang như google.com/mail hoặc google.com/login trong miền google.com.

Tuy nhiên, chương trình không thể truy cập các thành phần của các tên miền khác nhau như yahoo.com. Các bản sao cục bộ của Selenium – Core và trình duyệt web phải được cài đặt đẻ chúng cùng thuộc về một miền. Đây được gọi là Same Origin Policy và Selenium RC đã được giới thiệu để giải quyết vấn đề hạn chế này. Máy chủ hoạt động như một proxy HTTP được định cấu hình máy khách và “lừa” trình duyệt tin rằng Selenium Core và ứng dụng web đang được kiểm thử đến từ cùng nguồn gốc.

Do đó, Selenium RC là một máy chủ được viết bằng Java, cung cấp khả năng viết các bài kiểm thử ứng dụng bằng nhiều ngôn ngữ lập trình khác nhau như Java, C#, Perl… Máy chủ RC chấp nhận các lệnh từ chương trình người dùng và chuyển chúng tới trình duyệt dưới dạng các lệnh Javascript Selenium-Core

Selenium WebDriver

selenium webdriver

Được phát triển bởi Simon Stewart vào năm 2006, Selenium WebDriver là framework kiểm thử đa nền tảng đầu tiên có thể định cấu hình và kiểm soát các trình duyệt ở cấp hệ điều hành. Nó phục vụ như một giao diện lập trình để tạo và chạy các test case

Không giống như Selenium RC, WebDriver không yêu cầu một công cụ cốt lõi như RC và tương tác tự nhiên với các ứng dụng trình duyệt. WebDriver cũng hỗ trợ nhiều ngôn ngữ lập trình khác nhau như Python, Ruby, PHP và Perl, trong số những ngôn ngữ khác và có thể được tích hợp với các framwork như TestNG và JUnit để quản lý kiểm thử.

Kiến trúc của Selenium WebDriver rất đơn giản và dễ hiểu:

  • Selenium test script: Tập lệnh kiểm thử Selenium được viết bằng bất kỳ ngôn ngữ lập trình nào cí thể là Java, Perl, PHP hoặc Python mà trình điều khiển có thể hiểu được.
  • JSON Wire Protocol: Cung cấp cơ chế vận chuyển để truyền dữ liệu giữa máy chủ và máy khách. Giao thức này phục vụ như một tiêu chuẩn công nghiệp cho các dịch vụ Web khác nhau
  • Browser Driver: Selenium sử dụng driver dành riêng cho từng trình duyệt để thiết lập kết nối an toàn.
  • Browsers: Selenium WebDriver hỗ trợ các trình duyệt web khác nhau để kiểm thử và chạy các ứng dụng trên đó.

Selenium Grid

Selenium Grid

Patrick Lightbody đã phát triển một Grid với mục tiêu chính là giảm thiểu thời gian thực hiện kiểm thử. Điều này được tạo điều kiện thuận lợi bằng cách phân phối đồng thời các lệnh kiểm thử cho các máy khác nhau. Selenium Grid cho phép thực hiện song song các kiểm thử trên các trình duyệt khác nhau và các hệ điều hành khác nhau. Grid đặc biệt linh hoạt và tích hợp với các thành phần khác của bộ phần mềm để thực thi đồng thời. 

Grid bao gồm một trung tâm được kết nối với một số nút. Nó nhận bài kiểm thử để thực hiện cùng với thông tin về hệ điều hành và trình duyệt sẽ chạy trên đó và chọn một nút phù hợp với yêu cầu (trình duyệt và nền tảng), chuyển bài kiểm thử đến nút đó. Nút hiện chạy trình duyệt và thực thi các lệnh selen bên trong nó

Ưu, nhược điểm của Selenium

Ưu điểm

  • Chính xác với kết quả đo, do đó làm cho nó cực kỳ đáng tin cậy
  • Vì Selenium là mã nguồn mở, nên những người bắt đầu đều có thể sử dụng miễn phí
  • Hỗ trợ nhiều ngôn ngữ lập trình
  • Hỗ trợ nhiều trình duyệt khác nhau như Chrome, Firefox
  • Rất dễ triển khai và không yêu cầu kiến thức chuyên sâu
  • Nhiều tiện ích và khả năng tái sử dụng

Nhược điểm

  • Do là mã nguồn mở nên không có cộng đồng nhà phát triển, không có hỗ trợ kỹ thuật đáng tin cậy
  • Không thể kiểm thử các ứng dụng dành cho thiết bị di động, máy tính để bàn
  • Hỗ trợ hạn chế kiểm tra hình ảnh
  • Selenium có hỗ trợ hạn chế cho việc quản lý kiểm thử. Selenium thường được tích hợp với các công cụ như JUnit và TestNG cho mục đích này
  • Bạn có thể cần kiến ​​thức về ngôn ngữ lập trình để sử dụng Selenium.

5/5 - (2 bình chọn)
Từ khóa:
Bình luận
Đăng ký nhận ưu đãi hấp dẫn
Đăng ký nhận ưu đãi hấp dẫn

    Icon Phone Icon Zalo