Selenium là thư viện hỗ trợ kiểm thử tự động mã nguồn mở miễn phí cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau. Có thể kết hợp với ngôn ngữ lập trình để tạo ra lệnh chạy automation testing trên trình duyệt web.
1. Selenium là gì?
Selenium là một bộ kiểm thử tự động (mã nguồn mở) miễn phí cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau. Selenium chỉ tập trung vào việc tự động hóa các ứng dụng dựa trên web. Việc kiểm thử được sử dụng bằng công cụ Selenium thường được gọi là Automation Selenium Testing. Selenium không chỉ là một công cụ duy nhất mà nó là một bộ phần mềm, mỗi bộ nó cung cấp các nhu cầu thử nghiệm khác nhau của một tổ chức. Nó có 4 thành phần:
- Selenium Integrated Development Environment (Selenium IDE)
- Selenium Remote Control (Selenium RC)
- Selenium WebDriver (chúng ta học cái này)
- Selenium Grid
Hiện tại, Selenium RC và Selenium WebDriver được sáp nhập vào một khuôn khổ duy nhất để tạo thành Selenium 2 (Selenium 1 đề cập đến Selenium RC).
Từ Selenium 2 phát triển dần lên Selenium 3 và Selenium 4 là bản mới nhất hiện nay. Tính tới thời điểm hiện tại là 4.4.0 (27/09/2022)
Bản Selenium 3 cuối cùng là 3.141.59 . Chúng ta học thì học bản Selenium 4 mới nhất.
2. Selenium IDE
Selenium Integrated Development Environment (IDE) là framework đơn giản nhất trong bộ Selenium và nó là phần dễ nhất để học. Nó là một Browser plugin mà bạn có thể cài đặt dễ dàng như các plugin khác. Tuy nhiên, vì sự đơn giản của nó, nên chỉ sử dụng công cụ IDE làm công cụ tạo mẫu. Nếu bạn muốn các trường hợp kiểm thử nâng cao thì bạn có thể sử dụng Katalon Studio thay thế tool hoặc là Selenium WebDriver kết hợp code với ngôn ngữ lập trình.
Ưu điểm:
- Quá trình cài đặt và sử dụng đều dễ dàng.
- Không yêu cầu người sử dụng phải có kỹ năng lập trình mà họ chỉ cần hiểu biết một chút về HTML và DOM là đã có thể sử dụng.
- Có thể thực hiện export cho các test đã được tạo ra để sử dụng bên trong Selenium Webdriver hoặc Selenium RC.
- Bạn sẽ được cung cấp các chức năng để có thể thực hiện report kết quả hoặc những hỗ trợ cần thiết khi sử dụng.
- Sử dụng được tích hợp cùng với các extension khác nhau.
Nhược điểm:
- Bởi nó là một Extension nên bạn chỉ có thể cài đặt nó trên trình duyệt.
- Nó được dùng để thiết kế nhằm tạo ra các test đơn giản hoặc prototype test.
- Với IDE thì bạn không có khả năng thực hiện được các tính toán cũng như câu lệnh phức tạp hoặc có điều kiện.
- Hiệu năng hoạt động có thể sẽ chậm hơn nhiều so với Webdriver và Selenium RC.
3. Selenium Remote Control (Selenium RC)
Selenium RC là framework kiểm thử hàng đầu của 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 dung 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
Ưu điểm:
- Chạy trên các trình duyệt và các hệ điều hành khác nhau.
- Hỗ trợ các hoạt động lặp lại và điều kiện.
- Hỗ trợ các trình duyệt mới.
- Thực thi nhanh hơn Selenium IDE.
- Có thể hỗ trợ data-driven testing.
- Có API hoàn thiện.
Nhược điểm:
- Cài đặt phức tạp hơn Selenium IDE.
- Yêu cầu Selenium RC Server để thực run.
- Sự tương tác trình duyệt ít thực tế hơn.
- Kết quả không phù hợp và sử dụng JavaScript.
- Thời gian thực thi chậm hơn WebDriver.
- Phải có kiến thức về lập trình.
4. Selenium WebDriver
WebDriver chứng minh rằng nó tốt hơn cả Selenium IDE và Selenium RC ở nhiều khía cạnh. 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 vào JavaScript cho tự động hóa. 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ợ giống như ngôn ngữ trong Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Ruby
Ưu điểm:
- Cài đặt đơn giản hơn Selenium RC
- Có thể thực hiện giao tiếp trực tiếp với trình duyệt.
- Tương tác với trình duyệt tương tự như thao tác của một người dùng thật.
- Tốc độ thực thi nhanh hơn so với Selenium IDE và RC
- Kiểm tra được hầu hết các component trên web. Ngoại trừ một số cái không nên làm auto An sẽ chia sẻ sau trong quá trình học.
Nhược điểm:
- Quá trình cài đặt phức tạp hơn so với Selenium IDE
- Đòi hỏi người dùng cần phải có các kỹ năng lập trình
5. 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 thi song song có nghĩa là chạy nhiều thử nghiệm cùng một lúc.
Đặc điểm:
- Cho phép chạy đồng thời các thử nghiệm 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-nodes. Hub 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ó.
Đây là cách ta xây dựng một Selenium hub để khởi chạy nhiều hơn các test thông qua các máy cũng như trình duyệt khác nhau trong cùng một thời điểm. Selenium Grid cho phép bạn có thể chạy các trường hợp kiểm tra song song có nghĩa là các trường hợp kiểm tra khác nhau sẽ có thể được chạy tại một thời điểm ở trên các máy từ xa khác nhau.
Điều này sẽ mang lại nhiều lợi thế như:
- Nếu như bạn có bộ dữ liệu kiểm tra đủ lớn hoặc có bộ dữ liệu kiểm tra chạy chậm thì bạn có thể tăng hiệu suất của nó một cách đáng kể bằng cách sử dụng Selenium Grid. Nó sẽ phân chia các trường hợp kiểm tra để chạy những trường hợp kiểm tra khác nhau tại cùng một thời điểm ở trên nhiều máy khác nhau. Như vậy, thì trong nhiều trường hợp bạn sẽ có thể hỗ trợ từ xa nhau và thực hiện chúng trong cùng một thời điểm.
- Ở một số trường hợp thì Selenium Grid có thể cải thiện được thời gian mà nó chạy cho các trường hợp song song. Nếu như bạn không có nhiều kinh nghiệm với các chương trình hoặc ngôn ngữ kịch bạn thì bạn đều có thể sử dụng Selenium Grid để có thể làm quen với câu lệnh Selenium.
6. Hỗ trợ trình duyệt và 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.
7. Cách chọn công cụ Selenium phù hợp cho nhu cầu của bạn
8. Tổng kết
Toàn bộ Selenium Tool Suite bao gồm bốn thành phần:
- Selenium IDE, một tiện ích bổ sung của Browser 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ộ thử nghiệm.
- 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 các ngôn ngữ lập trình trong việc tạo ra các thử nghiệm phức tạp.
- Selenium 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, qua đó 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 thi các thử nghiệm 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 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 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 tuần tự.
Kể từ khoá học tháng 04/2022 thì An đã dạy Selenium 4 và dùng IntelliJ IDEA hoàn toàn.
Anh Tester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu