Chúng ta đều biết rằng Kiểm thử phần mềm là một phần không thể thiếu của SDLC và đôi khi bạn phải kiểm thử lặp đi lặp lại một lượng testcase nhiều lần. Để giảm bớt những công việc lặp đi lặp lại này thì tester cần sự giúp đỡ từ một số công cụ cho phép tự động hóa các tác vụ lặp đi lặp lại này. Một trong những bộ công cụ tự động hóa tuyệt vời này là Selenium, cung cấp khả năng tự động hóa các thao tác của người dùng trên các ứng dụng web. Đây là một dự án mã nguồn mở, chứa nhiều công cụ và thư việc đủ để tự động hóa các thao tác người dùng trên trình duyệt web. Bài viết này sẽ giúp bạn hiểu rõ hơn về Selenium.
1. Selenium là gì?
Như chia sẽ ở trên, Selenium là một bộ công cụ tự động hóa (mã nguồn mở) trên các ứng dụng web và giúp tự động hóa các thao tác mà người dùng thực thi với ứng dụng web trên trình duyệt. Mục đích chính của Selenium được nhấn mạnh bởi trang web chính thức của Selenium, đó là:
Selenium automates browsers. That's it! What you do with that power is entirely up to you.
Hiểu một cách đơn giản: Selenium tự động hóa trinh duyệt. Sử dụng sức mạnh này như thế nào là tùy thuộc hoàn toàn vào bạn. Có thể thấy được Selenium là một công cụ cực kỳ mạnh mẽ, ngay với cả các công nghệ mới nổi, Selenium vẫn luôn thuộc về top đầu các công cụ Tự động hóa web và kiểm thử tự động hóa.
Do Selenium là một tập hợp các công cụ khác nhau nên cũng có những người phát triển khác nhau. Dưới đây là những người chủ chốt đã có đóng góp đáng kể cho dự án Selenium.
Chủ yếu Selenium được tạo ra bởi Jason Huggins năm 2004. Ông là một kỹ sư của ThoughtWorks, lúc đó đang làm việc trên một ứng dụng web đòi hỏi mức độ phải kiểm tra thường xuyên.
Sau khi nhận ra rằng việc kiểm tra ứng dụng một cách thủ công và lặp đi lặp lại ngày càng trở nên không hiệu quả, ông đã tạo ra một chương trình JavaScript có thể tự động kiểm soát các hành động của trình duyệt. Ông đặt tên cho chương trình này là "JavaScriptTestRunner."
Nhìn thấy tiềm năng trong ý tưởng này để giúp tự động hóa các ứng dụng web khác, ông đã tạo ra mã nguồn mở JavaScriptRunner, sau này được đặt tên lại là Selenium Core.
2. Thành phần của Selenium
Selenium là một bộ công cụ nên mỗi công cụ trong bộ công cụ này sẽ có những chức năng khác nhau. Những công cụ này có thể được sử dụng riêng lẻ hoặc có thể được ghép nối với nhau để đạt được mục đính mà người dùng mong muốn.
Hình dưới thể hiện các thành phần khác nhau của Selenium Suite:
2.1. Selenium IDE
Selenium IDE: Là một phần mở rộng cho trình duyệt web Firefox và Chrome để ghi lại và tái tạo các hoạt động trên trang web. Nó có tính năng ghi lại hành động của người dùng trên trang web và tạo ra mã thử nghiệm tự động tương ứng.
2.2. Selenium Grid
Selenium Grid: Là một phần mềm cho phép người dùng chạy các kịch bản thử nghiệm tự động trên nhiều trình duyệt và máy tính khác nhau cùng một lúc.
2.3. Selenium WebDriver
Selenium WebDriver: Là một API để kiểm soát trình duyệt web và thực hiện các hành động tự động trên trang web. WebDriver cung cấp các API cho nhiều ngôn ngữ lập trình, cho phép người dùng tạo kịch bản thử nghiệm tự động để kiểm tra các tính năng và chức năng của trang web.
Selenium 3 là một bản nâng cấp so với Selenium 2 về nhiều mặt. Selenium 3 đã trở thành tiêu chuẩn của World Wide Web Consortium (W3C) . Selenium RC đã chuyển sang gói kế thừa và nhiều cải tiến cũng như tính năng mới đã được thêm vào để phục vụ cho bối cảnh web đang thay đổi.
Selenium 4 là phiên bản mới nhất của Selenium được phát hành vào tháng 12 năm 2020. Phiên bản này có nhiều cải tiến và tính năng mới, bao gồm:
-
Hỗ trợ đầy đủ trình duyệt mới nhất như Microsoft Edge, Mozilla Firefox, Google Chrome, Apple Safari.
-
Tương thích tốt với phiên bản mới nhất của các trình duyệt và đáp ứng tốt hơn với các ứng dụng web hiện đại.
-
Có thể chạy song song trên nhiều trình duyệt và máy tính khác nhau cùng một lúc để giảm thời gian chạy kiểm thử.
-
Chạy kiểm thử trên các trình duyệt di động như iOS và Android.
-
Nhiều tính năng mới, bao gồm hỗ trợ cho các kịch bản kiểm thử song song, hỗ trợ cho nhiều trình duyệt cùng một lúc, cải tiến bộ lọc CSS, hỗ trợ cho ngôn ngữ lập trình Kotlin, và nhiều tính năng khác.
Selenium 4 là một bản cập nhật quan trọng cho Selenium và được mong đợi sẽ cải thiện hiệu suất và tính năng của việc kiểm thử tự động trên ứng dụng web.
3. Selenium có thể làm gì?
Như các bạn có thể thấy với các phiên bản nâng cấp, Selenium ngày càng phổ biến và hỗ trợ nhiều hơn. Vậy selenium có thể làm gì?
-
Kiểm thử chức năng: Selenium cho phép lập trình viên tạo kịch bản thử nghiệm tự động để kiểm tra các chức năng của một trang web, bao gồm kiểm tra các trang, các trường đầu vào, các nút và các thao tác khác.
-
Kiểm thử hiệu suất: Selenium có thể sử dụng để đo hiệu suất của một trang web, bao gồm thời gian tải trang và thời gian phản hồi của các yêu cầu.
-
Kiểm thử tương thích: Selenium cho phép kiểm tra tương thích của một trang web trên nhiều trình duyệt và nền tảng khác nhau.
-
Kiểm thử bảo mật: Selenium có thể sử dụng để kiểm tra các lỗ hổng bảo mật của một trang web bằng cách thực hiện các cuộc tấn công xác định và đánh giá khả năng của trang web đối phó với các cuộc tấn công này.
-
Kiểm thử tự động: Selenium có thể sử dụng để tạo và chạy các kịch bản thử nghiệm tự động để kiểm tra các tính năng và chức năng của một trang web một cách tự động.
-
Tự động hóa kiểm thử: Selenium có thể tự động hóa các hoạt động kiểm thử để giảm thời gian và chi phí kiểm thử và tăng tính chính xác và hiệu quả của quá trình kiểm thử.
Selenium là một công cụ rất mạnh mẽ trong việc kiểm thử phần mềm và được sử dụng rộng rãi trong ngành công nghiệp phần mềm để đảm bảo chất lượng sản phẩm và tăng năng suất cho các dự án phát triển web.
4. Ưu điểm của Selenium
Selenium là một công cụ tự động hóa kiểm thử mạnh mẽ và có nhiều ưu điểm, bao gồm:
-
Tích hợp dễ dàng: Selenium có thể tích hợp với các công cụ và ngôn ngữ lập trình khác để tạo ra các kịch bản kiểm thử tự động. Selenium hỗ trợ nhiều ngôn ngữ lập trình như Java, C#, Python, Ruby, và nhiều hơn nữa.
-
Hỗ trợ đa nền tảng: Selenium hỗ trợ nhiều trình duyệt và nền tảng khác nhau, bao gồm Windows, Mac và Linux.
-
Khả năng mở rộng: Selenium có thể được mở rộng để tương thích với nhiều ứng dụng và trình duyệt khác nhau.
-
Tốc độ thực thi nhanh: Selenium thực hiện các kịch bản kiểm thử tự động với tốc độ nhanh và chính xác, giúp tiết kiệm thời gian và tăng năng suất cho các nhà phát triển.
-
Dễ sử dụng: Selenium có cú pháp đơn giản và dễ hiểu, giúp người dùng dễ dàng tạo ra các kịch bản kiểm thử tự động.
-
Độ tin cậy cao: Selenium cho phép kiểm tra các chức năng và tính năng của một trang web một cách chính xác và đáng tin cậy.
-
Cộng đồng hỗ trợ lớn: Selenium có một cộng đồng lớn của các nhà phát triển và người dùng, cung cấp nhiều tài liệu hữu ích và hỗ trợ để giải quyết các vấn đề liên quan đến Selenium.
5. Nhược điểm của Selenium
Bên cạnh những ưu điểm của Selenium thì nó cũng có một số nhược điểm:
-
Khó khăn trong việc tìm kiếm các phần tử trên trang web: Đôi khi, việc xác định các phần tử trên trang web như các nút, hộp văn bản, hoặc các đường dẫn có thể khó khăn, đặc biệt khi các phần tử này được tạo ra bởi các mã nguồn động.
-
Khả năng bị phát hiện và chặn bởi các công cụ bảo mật: Các công cụ bảo mật như CAPTCHA hoặc reCAPTCHA có thể phát hiện và chặn các hoạt động tự động của Selenium.
-
Tốc độ chậm trong việc kiểm thử các ứng dụng lớn: Selenium có thể gặp khó khăn khi kiểm thử các ứng dụng web lớn hoặc phức tạp.
-
Khả năng thất bại khi trình duyệt hoặc máy chủ bị lỗi: Selenium phụ thuộc vào trình duyệt và máy chủ để thực thi các kịch bản kiểm thử, do đó nếu trình duyệt hoặc máy chủ bị lỗi, thì các kịch bản kiểm thử cũng có thể gặp sự cố.
-
Độ bảo mật không cao: Selenium cho phép tự động hóa các hoạt động trên trình duyệt, do đó nó có thể bị sử dụng để tấn công các trang web hoặc ứng dụng web.
-
Không hỗ trợ các tính năng bảo mật cao: Selenium không thể xử lý được các tình huống bảo mật cao như các mô hình xác thực phức tạp hoặc mã hóa SSL.
-
Không thể kiểm tra các ứng dụng desktop: Selenium chỉ hỗ trợ kiểm thử các ứng dụng web, nếu bạn cần kiểm thử các ứng dụng desktop, bạn sẽ cần phải sử dụng các công cụ khác.
-
Phụ thuộc vào trình duyệt: Selenium phụ thuộc vào các trình duyệt để thực hiện kiểm thử, và mỗi trình duyệt có thể có các phiên bản khác nhau, điều này có thể gây ra khó khăn trong việc đảm bảo tính ổn định của các kịch bản kiểm thử.
Tuy nhiên, với sự phát triển liên tục và sự hỗ trợ của cộng đồng, các nhược điểm của Selenium cũng đang được giải quyết dần và đáp ứng được nhu cầu của người dùng.
Student feedback
Reviews