Selenium là gì? Toàn tập về 4 công cụ Selenium Automation Testing bạn cần biết
27/09/2023 09:11 am | Lượt xem : 28747
Selenium là một framework kiểm thử tự động mã nguồn mở, miễn phí, được dùng để đánh giá các ứng dụng web trên nhiều trình duyệt và nền tảng. Bạn có thể sử dụng nhiều ngôn ngữ lập trình như Java, C#, Python… để tạo Test Scripts. Hãy cùng Tenten.vn tìm hiểu kỹ hơn về framework này nhé!
MiraWEB – Tạo website tự động bằng AI trong 30 giây
Contents
Các công cụ
Selenium Software không phải là một công cụ đơn nhất, mà là một bộ phần mềm, mỗi phần mềm nhỏ đảm nhiệm một nhu cầu kiểm thử QA khác nhau của một công ty. Danh sách các công cụ như sau:
– Integrated Development Environment (IDE)
– Remote Control (RC)
– WebDriver
– Grid
Hiện RC và WebDriver đã được gộp vào một framework chung để tạo nên Selenium 2. Trong khi đó, Selenium 1 được gọi là Selenium RC.
Ai phát triển ra Selenium?
Bởi đây là một tập hợp nhiều công cụ khác nhau, nên cũng có nhiều nhà phát triển khác nhau đứng sau nó.
Selenium được sáng tạo ra bởi Jason Huggins vào năm 2004. Từng làm kỹ sư tại ThoughtWorks, lúc bấy giờ Huggins đang phát triển một ứng dụng web đòi hỏi phải được kiểm thử thường xuyên. Nhận thấy công cụ Manual Testing của công ty ngày càng kém hiệu quả, anh đã xây dựng một chương trình JavaScript có khả năng tự động điều khiển hành động của trình duyệt và đặt tên cho nó là “JavaScriptTestRunner”.
Nhận thấy tiềm năng của ý tưởng này trong việc giúp tự động hoá các ứng dụng web khác, anh đã mở mã nguồn JavaScriptRunner, và sau này nó đã được đổi tên thành Selenium Core.
Không may là, người thử nghiệm sử dụng Core phải cài đặt toàn bộ ứng dụng cần kiểm thử, lẫn máy chủ web, lên máy tính cục bộ, bởi những hạn chế của chương trình này. Do đó, một kỹ sư khác của ThoughtWork là Paul Hammant đã quyết định xây dựng một máy chủ đóng vai trò một proxy HTTP để “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 một tên miền. Hệ thống này được biết đến với tên gọi Selenium Remote Control hay Selenium 1.
Grid được phát triển bởi Patrick Lightbody nhằm giải quyết nhu cầu tối thiểu hoá thời gian thực thi các bài kiểm thử. Ban đầu anh gọi hệ thống này 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, và gửi các câu lệnh Selenium đến nhiều máy tính đồng thời.
Shinya Kasatani, một lập trình viên người Nhật Bản, đã tạo ra IDE, một phần mở rộng dành cho Firefox và Chrome có khả năng tự động hoá trình duyệt thông qua tính năng ghi-và-chạy. Anh nảy sinh ý tưởng này từ mong muốn cải thiện tốc độ xây dựng các tình huống kiểm thử. Anh đã đóng góp IDE cho dự án vào năm 2006.
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 trở nên ngày càng mạnh mẽ, và ngày càng áp đặt nhiều hạn chế đối với nhiều chương trình JavaScript như Selenium Core. WebDriver là framework kiểm thử xuyên 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.
Năm 2008, toàn bộ đội ngũ phát triển quyết định nhập WebDriver và RC để tạo ra một công cụ mạnh mẽ hơn gọi là Selenium 2, với cốt lõi là WebDriver. Hiện nay RC vẫn được phát triển nhưng chỉ ở chế độ duy trì. Hầu hết các tài nguyên của dự án đã được dồn vào Selenium 2.
Selenium IDE là gì?
Selenium Integrated Development Environment (IDE) là một framework đơn giản bậc nhất trong bộ Selenium, và cũng là công cụ dễ học nhất. Nó là một plugin Chrome và Firefox mà bạn có thể cài đặt trong chớp mắt.
Tuy nhiên, vì quá đơn giản, IDE chỉ nên được sử dụng như một công cụ prototype. Nếu muốn tạo các tình huống kiểm thử phức tạp hơn, bạn cần Selenium RC hoặc WebDriver.
Selenium Remote Control (Selenium RC) là gì?
Selenium RC là framework kiểm thử hàng đầu trong dự án Selenium. Nó là công cụ kiểm thử web tự động hoá đầu tiên cho phép người dùng sử dụng một ngôn ngữ trình duyệt theo ý thích. Tính đến phiên bản 2.25.0, RC hỗ trợ các ngôn ngữ lập trình gồm: Java, C#, PHP, Python, Perl, Ruby.
WebDriver là gì?
WebDriver tốt hơn IDE và RC trên nhiều khía cạnh. Nó có hướng tiếp cận hiện đại và ổn định hơn trong việc tự động hoá các hành động trình duyệt. WebDriver, không như RC, không dựa vào JavaScript để thực hiện tự động hoá kiểm thử. Nó kiểm soát trình duyệt bằng cách giao tiếp trực tiếp với trình duyệt.
Các ngôn ngữ được WebDriver hỗ trợ cũng tương tự RC: Java, C#, PHP, Python, Perl, Ruby.
Selenium Grid là gì?
Selenium Grid là một công cụ được sử dụng cùng với RC để chạy các bài kiểm thử song song trên nhiều máy tính và trình duyệt khác nhau cùng lúc. Tức là bạn có thể chạy nhiều bài kiểm thử cùng lúc!
Tính năng của Grid bao gồm:
– cho phép chạy đồng thời các bài kiểm thử trên nhiều trình duyệt và môi trường
– tiết kiệm rất nhiều thời gian
– tận dụng mô hình hub-và-node. Hub đóng vài trò nguồn trung tâm của các lệnh Selenium để mỗi node kết nối vào nó.
Selenium hỗ trợ trình duyệt và hệ điều hành nào?
Bởi sự khác biệt về kiến trúc, IDE, RC, và WebDriver hỗ trợ nhiều trình duyệt và môi trường hệ điều hành khác nhau. Cụ thể:
– IDE hỗ trợ các trình duyệt Mozilla Firefox và Chrome, và các hệ điều hành Windows, macOS, Linux.
– WebDriver hỗ trợ các trình duyệt Google Chrome 12+, Firefox, IE 7+ và Edge, Safari, HtmlUnit và PhantomUnit. Nó cũng hỗ trợ mọi hệ điều hành mà các trình duyệt nêu trên có thể chạy được.
Cách chọn công cụ phù hợp với nhu cầu
Selenium IDE
Chọn IDE nếu bạn muốn học về các khái niệm liên quan tự động hoá kiểm thử và Selenium, bao gồm:
– các câu lệnh Selenese như type, open, clickAndWait, assert, verify…
– các locator như id, name, xpath, css selector…
– thực thi mã JavaScript tuỳ biến bằng runScript
– xuất các tình huống kiểm thử dưới nhiều định dạng khác nhau.
– tạo các bài kiểm thử mà không cần kiến thức về lập trình
– tạo các tình huống kiểm thử và các bài kiểm thử đơn giản, có thể xuất sang RC hoặc WebDriver
– kiểm thử một ứng dụng web trên Firefox và Chrome.
Selenium RC
Chọn RC để:
– thiết kế một bài kiểm thử bằng một ngôn ngữ mạnh mẽ hơn Selenese
– chạy bài kiểm thử trên nhiều trình duyệt khác nhau (trừ HtmlUnit) trên nhiều hệ điều hành khác nhau
– triển khai các bài kiểm thử trên nhiều môi trường khác nhau bằng Grid
– kiểm thử ứng dụng trên một trình duyệt mới hỗ trợ JavaScript
– kiểm thử các ứng dụng web với các bối cảnh AJAX phức tạp.
WebDriver
Chọn WebDriver để:
– sử dụng một ngôn ngữ lập trình cụ thể trong thiết kế tình huống kiểm thử
– kiểm thử các ứng dụng nhiều chức năng liên quan AJAX
– thực thi các bài kiểm thử trên trình duyệt HtmlUnit
– xây dựng các kết quả kiểm thử tuỳ biến
Selenium Grid
Chọn Grid để:
– chạy các script RC trên nhiều trình duyệt khác nhau và hệ điều hành khác nhau cùng lúc.
– chạy một bài kiểm thử lớn, cần hoàn thành trong thời gian sớm nhất có thể.
Tăng 300% hiệu suất công việc với AI
Bạn sẽ học được gì?
|
Bài liên quan
Shell là gì? Phân biệt các loại Shell
Operating System là gì? Tổng quan về OS
Ngôn ngữ Assembly là gì? 7 đặc điểm thú vị của ngôn ngữ Assembly