Lang thang các forum testing và nghe dân tình truyền miệng, thấy ở đâu có automation testing thì ở đó có Selenium, ở bài viết này chúng ta sẽ cùng nhau tìm hiểu về công cụ kiểm thử tự động này. Hầu hết các công cụ tự kiểm thử tự động như QTP, Katalon, … đều phát triển dựa trên công cụ Selenium, Selenium là cái cơ bản nhất và khó “nhai” nhất, nó không chỉ hỗ trợ giao diện để thao tác, mà nó gồm đống các thư viện, các frameworks rồi người dùng sẽ sử dụng thư viện đó để xây dựng, code ngay từ đầu. Vậy chúng mình sẽ cùng nhau tìm hiểu một số cái cơ bản về Selenium nhé!
1. Selenium là gì?
Selenium là một bộ thử tự động miễn phí (mã nguồn mở) tự động dành cho các ứng dụng web trên trình duyệt và các nền tảng khác nhau. Nhưng chỉ có Selenium tập trung vào việc tự động hóa các ứng dụng dựa trên web. Nó có khả năng hoạt động trên nhiều trình duyệt như IE, Mozilla firefox, Chrome, Safari, Opera và hầu hết các hệ điều hành như Windows, Mac, Linux. Dưới đây mình xin giới thiệu công cụ kiểm thử tự động Selenium ở mức cơ bản dành cho những bạn mới bắt đầu từ những kinh nghiệm của bản thân mình.
2. Tại sao nên sử dụng Selenium
- Selenium là Tool free và có open source
- Selenium là công cụ kiểm thử tự động dành cho các ứng dụng web
- Selenium có cộng đồng sử dụng rộng rãi
- Selenium có khả năng tương thích trên nhiều trình duyệt như Mozilla firefox, Chrome, Safari, Opera, Internet Explorer
- Selenium có khả năng tương thích tốt với nhiều platform như Java, C#, Ruby, Python…
- Selenium không chỉ là một tool hay một tiện ích mà nó là một gói tool cho cùng một chức năng và được biết đến như một suit (bộ).
- Selenium thường xuyên được phát triển và cải tiến.
3. Phân loại Selenium suit
Selenium đã được tạo bởi Jason Huggins vào năm 2004. Trải qua lịch sử phát triển khá dài, cho đến hiện tại Selenium WebDriver 2 là bản mới nhất. Ban đầu Selenium Suite gồm Selenium IDE và Selenium RC, sau này 2 bản WebDriver và Selenium Grid mới được phát triển thêm.
3.1. Selenium IDE (Integrated Development Environment)
- Là một công cụ được xây dựng dưới dạng Add-ons của firefox. Đây là cách tiện ích nhất để xây dựng các ca kiểm thử, gồm các phần tử giao diện giúp chúng ta có thể thực hiện các thao tác. Nó giúp tiết kiệm thời gian và là cách thông minh để hiểu được kịch bản Selenium.
- Bộ công cụ cho phép chúng ta Record/Playback một test suit. Nhờ đó Tester có thể nhanh chóng tạo ra một kịch bản test (test script) bằng cách record trực tiếp các thao tác của mình trên các đối tượng cần kiểm tra thành 1 tập các câu lệnh bằng ngôn ngữ kịch bản được phát triển cho Selenium IDE và Selenium Core có dạng bản HTML sau đó Playback (chạy lại) các câu lệnh này để kiểm tra. Công cụ này rất hữu dụng vì nó tiết kiệm được thời gian viết kịch bản kiểm tra và có thể lưu kịch bản test đưới nhiều loại ngôn ngữ lập trình.
3.2. Selenium RC (Selenium Remote control)
- Là bộ công cụ cho phép nhận các test script được thu bởi Selenium IDE. Nó cho phép chỉnh sửa, cải tiến linh động bằng ngôn ngữ lập trình khác nhau. Sau đó khởi động một trong các trình duyệt web được chỉ định để kiểm tra trực tiếp trên trình duyệt đó. Selenium RC còn cung cấp khả năng lưu lại kết quả kiểm tra.
- Nó là một công cụ đơn lẻ, tức là bạn phải cài thư việc Selenium server standalone, sau đó khởi động server manual (bằng tay). Server sẵn sàng thì bạn mới bắt đầu chạy được test
- Selenium RC là phiên bản cũ, hầu hết bây giờ không ai còn dùng mà chuyển qua Selenium WebDriver luôn rồi.
3.3. Selenium Grid
Ngay cả việc test manual, tester cần test trên nhiều môi trường, nhiều nền tảng khác nhau. Ví dụ như nền tảng web thì có nhiều loại browser như Chrome, Firefox, Safari,… Mobile gồm nhiều devices, nhiều phiên bản hệ điều hành. Vỡi mỗi môi trường thì đều cần một lượng effort nhất định.
Automation test cũng vậy, chúng ta cần chạy kịch bản test trên nhiều môi trường khác nhau, với mỗi môi trường, bộ kịch bản test cũng khác nhau, và nếu như vậy thì effort bỏ ra cho automation cũng rất lớn, vừa viết code, vừa tạo data, vừa thời gian chạy test. Rất may, Selenium hỗ trợ một tính năng nhằm khắc phục tình trạng trên, đó là Selenium Grid.
- Là một trong số các bộ test tool của selenium, nó cho phép chúng ta có thể chạy nhiều 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 trên cùng một lúc.
- Selenium Grid còn giúp 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 chạy trên 5 trình duyệt khác nhau, nếu thông thường thì bạn phải thực hiện chạy 1 test case của bạn trên 5 trình duyệt khác nhau nhưng với Selenium Grid thì bạn chỉ cần chạy 1 lần.
3.4. Selenium Web Driver
- Là các gói thư viện hỗ trợ kiểm thử trên nền tảng web, hỗ trợ nhiều ngôn ngữ lập trình khác nhau để tạo kịch bản test đầy đủ.
- Hiện tại WebDriver đã mạnh, cộng đồng người dùng và người phát triển lớn khiến WebDriver có thể giải quyết nhiều bài toán khó. Tester sử dụng các thư viện (libraries) kết hợp các thư viện bên ngoài (ví dụ như poi – xử lý file excell, log4j – hiển thị log, …) để xây dựng kịch bản (script).
Selenium qua quá trình phát triển lâu dài thì giờ đã đứng vị trí đầu bảng trong các công cụ hỗ trợ kiểm thử tự động. Đặc biệt WebDriver có thể giải quyết hầu hết các bài toán testing (kể cả các trang web chứa Ajax) nên trong thời gian tới, Selenium vẫn sẽ được ưa chuộng và selenium nên được áp dụng rộng rãi để nâng cao năng suất test trong các dự án phần mềm. Những bài viết sau chúng ta sẽ cùng nhau tìm hiểu dần về công cụ kiểm thử tự động này nhé 🙂 mong rằng các bạn sẽ cùng mình chia sẻ để bổ sung thêm kiến thức cho bản thân nhé.