Selenium Grid
Selenium Grid là gì?
Selenium Grid là một trong số các bộ testing tool của Selenium, nó cho phép chúng ta có thể chạy nhiều các kịch bản test trên nhiều máy, nhiều hệ điều hành và nhiều trình duyệt khác nhau trong cùng một lúc.
Khi nào thì cần dùng Selenium Grid?
Có hai lý do chính để bạn cân nhắc việc sử dụng Selenium Grid cho các dự án của mình đó là:
- Các kịch bản test của bạn yêu cầu phải được kiểm tra trên nhiều trình duyệt khác nhau, nhiều hệ điều hành và trên nhiều máy test khác nhau trong cùng một lúc. Việc này để đảm bảo là các ứng dụng của bạn tương thích với các hệ điều hành cùng với các môi trường hoạt động khác nhau.
- Hai là, để tiết kiệm thời gian thực hiện bộ test case. Ví dụ, ứng dụng của bạn cần phải test trên 4 trình duyệt khác nhau, thông thường cùng với 1 test case bạn phải chạy 4 lần, nhưng với Selenium Grid thì bạn chỉ cần chạy 1 lần thôi, đơn giản là đã nhìn ra được sự khác biệt rồi!
Các phiên bản của Selenium Grid
Selenium Grid có hai phiên bản, bản cũ hơn là Selenium Grid 1 và bản mới hơn là Selenium Grid 2. Hiện nay thì Grid 2 được sử dụng nhiều hơn. Dưới đây là bảng so sánh một số thông tin chính của hai phiên bản này, các bạn cùng tham khảo nhé:
Grid 1 | Grid 2 |
Selenium Grid 1 có một bộ điều khiển riêng biệt với Selenium RC server. | Selenium Grid 2 thì nó đi kèm luôn trong bộ Selenium server. |
Grid 1 chỉ có hỗ trợ Selenium RC commands và script. | Grid 2 hỗ trợ cả Selenium RC và Selenium Webdriver script. |
Bạn chỉ có thể automate cho 1 trình duyệt trên 1 remote control. | Grid 2 với mỗi remote control bạn có thể automate lên tới 5 trình duyệt. |
Bạn cần phải cài đặt và cấu hình Apache Ant trước khi sử dụng Grid 1. | Với Grid 2 thì bạn không phải cài đặt Apache Ant nữa. |
Hub và Node trong Selenium Grid
Hai thành phần cơ bản trong Selenium Grid gồm có Hub và các Node.
Hub là gì?
Trong selenium grid, Hub đóng vai trò là một máy tính trung tâm, nơi mà các kịch bản kiểm thử của bạn được load tới đó.
Mỗi Grid chỉ nên có một Hub, và Hub này được khởi chạy trên một máy duy nhất.
Trên máy có chứa Hub, khi run các kịch bản kiểm thử bạn có thể quan sát được các thông tin automate trên các trình duyệt ở các node.
Ví dụ như này cho dễ hiểu, bạn đã có một Hub, theo yêu cầu bạn cần test ứng dụng trên hệ điều hành Window 7 và Firefox version 54. Khi bạn gửi thông tin yêu cầu này, Hub sẽ thực hiện tìm kiếm trong các node có thông tin tương ứng với đầu vào và rồi thực hiện test các test case với môi trường yêu cầu. Hoặc nếu không có thì có thể output ra thông tin lỗi nào đó.
Node là gì?
Nodes là các máy test được kết nối với máy Hub, nó sẽ thực hiện run các kịch bản kiểm thử mà bạn đã load lên Hub. Trong một grid bạn có thể xây dựng một hoặc nhiều node.
Các node có thể khởi chạy được trên nhiều máy với nhiều nền tảng và trình duyệt khác nhau. Và nền tảng để run các máy test này không nhất thiết là phải giống với máy Hub.
Hoạt động của Hub và Node
Đầu tiên, bạn cần tạo một Hub. Từ Hub này, bạn sẽ thực hiện tạo các Nodes. Các nodes này chính là nơi mà các test case của bạn sẽ run trên đó. Hub ở đây có vai trò là tìm các node có điều kiện tương ứng với yêu cầu đầu vào của bạn và chuyển các test case tới đúng môi trường cần chạy đó. Và cụ thể ở đây là nó sẽ tìm đến đúng hệ điều hành và trình duyệt để run test case đó.