Là gì Selenium? Giới thiệu Hướng dẫn
⚡ Tóm tắt thông minh
Selenium là một nền tảng kiểm thử tự động mã nguồn mở, miễn phí, được thiết kế để xác thực các ứng dụng web trên nhiều trình duyệt và nền tảng, sử dụng nhiều ngôn ngữ lập trình. Nền tảng này cho phép tự động hóa kiểm thử mạnh mẽ, hiệu quả và có khả năng mở rộng cho các hoạt động QA hiện đại.

Là gì Selenium?
Selenium là khung kiểm tra tự động miễn phí (mã nguồn mở) được sử dụng để xác thực các ứng dụng web trên các trình duyệt và nền tảng khác nhau. Bạn có thể sử dụng nhiều ngôn ngữ lập trình như Java, C#, Python, v.v. để tạo Selenium Kịch bản thử nghiệm. Việc kiểm tra được thực hiện bằng cách sử dụng Selenium công cụ kiểm tra thường được gọi là Selenium Kiểm tra.
Thông tin chuyên sâu
“Tránh sử dụng độ trễ ngủ cố định trong các bài kiểm tra của bạn. Thay vào đó, hãy sử dụng lệnh chờ rõ ràng (như WebDriverWait) để chờ các thành phần tải. Điều này làm cho các tập lệnh của bạn đáng tin cậy hơn và nhanh hơn, vì chúng phản hồi động với các điều kiện trang thực tế—một phương pháp hay nhất quan trọng đối với sinh viên ở mọi nơi, bắt đầu bằng Selenium".
👉 Đăng ký miễn phí trực tiếp Selenium Dự án thử nghiệm
Selenium Bộ công cụ
Selenium Phần mềm không chỉ là một công cụ đơn lẻ mà là một bộ phần mềm, mỗi phần phục vụ cho những mục đích khác nhau. Selenium Nhu cầu kiểm tra QA của một tổ chức. Đây là danh sách các công cụ
- Selenium Môi trường phát triển tích hợp (IDE)
- Selenium Điều khiển từ xa (RC)
- webdriver
- Selenium lưới
Tại thời điểm này, Selenium RC và WebDriver được hợp nhất thành một khung duy nhất để tạo thành Selenium 2. Selenium Nhân tiện, số 1 đề cập đến Selenium RC.
Video Hướng Dẫn Selenium
Nhấp chuột đây nếu video không thể truy cập được
Ai đã phát triển Selenium?
từ Selenium là một tập hợp các công cụ khác nhau, nó cũng có các nhà 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 Selenium Dự án
Chủ yếu, Selenium là được tạo bởi Jason Huggins vào năm 2004Là một kỹ sư tại ThoughtWorks, anh ấy đang làm việc trên một ứng dụng web đòi hỏi phải kiểm tra thường xuyên. Nhận thấy việc kiểm tra thủ công lặp đi lặp lại của ứng dụng ngày càng kém hiệu quả, anh ấy đã tạo ra một JavaScript chương trình sẽ 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 ý tưởng này có tiềm năng giúp tự động hóa các ứng dụng web khác, anh ấy đã thực hiện JavaScriptRunner mã nguồn mở, sau này được đổi tên Selenium Trung tâm. Đối với những người quan tâm đến việc khám phá các tùy chọn khác để thử nghiệm ứng dụng web, hãy xem các tùy chọn này Selenium lựa chọn thay thế.
Vấn đề về chính sách xuất xứ tương tự
Chính sách cùng nguồn gốc cấm JavaMã lệnh truy cập các phần tử từ một miền khác với nơi nó được khởi chạy. Ví dụ, mã HTML trong www.google.com sử dụng một JavaChương trình tập lệnh "randomScript.js". Chính sách gốc tương tự sẽ chỉ cho phép randomScript.js truy cập các trang trong google.com, chẳng hạn như google.com/mail, google.com/login hoặc google.com/signup. Tuy nhiên, nó không thể truy cập các trang từ các trang web khác như yahoo.com/search hoặc guru99.com vì chúng thuộc các tên miền khác nhau.
Đây là lý do tại sao, trước khi Selenium RC, người kiểm tra cần cài đặt bản sao cục bộ của cả hai Selenium Cốt lõi (một JavaChương trình tập lệnh) và máy chủ web chứa ứng dụng web đang được thử nghiệm, do đó chúng sẽ thuộc cùng một miền
Ngày sinh của Selenium Điều khiển từ xa (Selenium RC)
Thật không may, các nhà thử nghiệm sử dụng Selenium Core đã phải cài đặt toàn bộ ứng dụng đang được thử nghiệm và máy chủ web trên máy tính cục bộ của họ do những hạn chế do chính phủ đặt ra. chính sách cùng nguồn gốc. Vì vậy, một kỹ sư khác của ThoughtWorks, Paul Hammant, quyết định tạo một máy chủ hoạt động như một proxy HTTP để "lừa" trình duyệt tin rằng Selenium Core và ứng dụng web đang được thử nghiệm đều đến từ cùng một miền. Hệ thống này sau này được gọi là Selenium điều khiển từ xa or Selenium 1.
Ngày sinh của Selenium lưới
Selenium Lưới được phát triển bởi Patrick Lightbody để giải quyết nhu cầu giảm thiểu thời gian thực hiện thử nghiệm càng nhiều càng tốt. Ban đầu, ông gọi hệ thống “QA được lưu trữ.” 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à cũng có khả năng gửi ra Selenium lệnh tới nhiều máy khác nhau cùng một lúc.
Ngày sinh của Selenium IDE
Shinya Kasatani của Nhật Bản đã tạo ra Selenium IDE, Một Firefox và tiện ích mở rộng Chrome có thể tự động hóa trình duyệt thông qua tính năng ghi và phát lại. Anh ấy đã nghĩ ra ý tưởng này để tăng tốc độ tạo các trường hợp thử nghiệm. Anh ấy đã quyên góp Selenium IDE đến Selenium Dự án ở 2006.
Sự ra đời của WebDriver
Simon Stewart đã tạo WebDriver vào khoảng 2006 khi các trình duyệt và ứng dụng web ngày càng trở nên mạnh mẽ hơn và hạn chế hơn với JavaCác chương trình kịch bản như Selenium Cốt lõi. Đây là khuôn khổ thử nghiệm đa nền tảng đầu tiên có thể kiểm soát trình duyệt ở cấp độ hệ điều hành.
Ngày sinh của Selenium 2
In 2008, Toàn bộ Selenium Nhóm đã quyết định hợp nhất WebDriver và Selenium RC để tạo thành một công cụ mạnh mẽ hơn được gọi là Selenium 2, với WebDriver là cốt lõi. Hiện tại, Selenium RC vẫn đang được phát triển, nhưng chỉ ở chế độ bảo trì. Hầu hết Selenium Những nỗ lực của dự án hiện đang tập trung vào Selenium 2.
Vì vậy, tại sao tên Selenium?
Tên Selenium đến từ một trò đùa mà Jason đã từng nói với đội của anh ấy. Trong lúc Seleniumsự phát triển của, một cái khác kiểm tra tự động khung được sản xuất phổ biến bởi công ty có tên là Mercury Interactive (vâng, công ty ban đầu đã tạo ra QTP trước khi nó được HP mua lại). Kể từ khi Selenium là một loại thuốc giải độc nổi tiếng cho Mercury đầu độc, Jason gợi ý cái tên đó và đồng đội của anh đã lấy nó. Vì vậy, đó là cách chúng tôi gọi framework này cho đến hiện tại.
Là gì Selenium IDE?
Selenium Môi trường phát triển tích hợp (IDE) là khung đơn giản nhất trong Selenium bộ và là dễ học nhất. Nó là một Chrome và Firefox Plugin mà bạn có thể cài đặt dễ dàng nhất có thể với các plugin khác. Tuy nhiên, vì tính đơn giản của nó, Selenium IDE chỉ nên được sử dụng như một công cụ tạo mẫu. Nếu bạn muốn tạo các trường hợp thử nghiệm nâng cao hơn, bạn sẽ cần sử dụng một trong hai cách sau: Selenium RC hoặc WebDriver.
Là gì Selenium Điều khiển từ xa (Selenium RC)?
Selenium RC là khung thử nghiệm hàng đầu tất cả Selenium dự án trong một thời gian dài. Đây là lần đầu tiên tự động thử nghiệm web công cụ đó cho phép người dùng sử dụng ngôn ngữ lập trình mà họ thích. Tính đến phiên bản 2.25.0, RC có thể hỗ trợ các ngôn ngữ lập trình sau:
WebDriver là gì?
WebDriver tỏ ra tốt hơn Selenium IDE và Selenium RC trong 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 JavaKịch bản cho Selenium Kiểm tra tự động hóa. Nó điều khiển 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
- hồng ngọc
Là gì Selenium Lưới?
Selenium Lưới là một công cụ được sử dụng cùng với Selenium RC để chạy kiểm tra 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 hiện song song có nghĩa là chạy nhiều thử nghiệm cùng một lúc.
Tính năng, đặc điểm:
- cho phép chạy thử nghiệm đồng thời in 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 trung tâm và nút ý tưởng. Hub hoạt động như một nguồn trung tâm của Selenium lệnh tới mỗi nút được kết nối với nó.
Selenium Hỗ trợ trình duyệt và môi trường
Bởi vì sự khác biệt về kiến trúc của họ, Selenium SDI, Selenium RC và WebDriver hỗ trợ các bộ trình duyệt và môi trường hoạt động khác nhau.
| Selenium IDE | webdriver | |
|---|---|---|
| Hỗ trợ trình duyệt | Mozilla Firefox và Chrome | Google Chrome 12 + Firefox Internet Explorer 7+ và Edge Cuộc đi săn, cuộc hành trình, HtmlUnit và PhantomUnit |
| Operahệ thống ting | Windows, Mac OS X, Linux | Tất cả các hệ điều hành mà các trình duyệt trên có thể chạy. |
Lưu ý: Opera Trình điều khiển không còn hoạt động
Làm thế nào để chọn đúng Selenium Công cụ cho nhu cầu của bạn
| Công cụ | Tại sao chọn? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| webdriver |
|
| Selenium lưới |
|
Nghiên cứu điển hình trong thế giới thực
🔍 Nghiên cứu tình huống 1: Khả năng tương thích giữa nhiều trình duyệt cho Bảng điều khiển SaaS
Kịch bản
Một công ty phần mềm dưới dạng dịch vụ đang chuẩn bị phát hành bảng điều khiển phân tích cần hoạt động nhất quán trên các trình duyệt hiện đại (Chrome, Firefox, Edge, Safari).
Thách thức
Việc kiểm thử thủ công trên từng trình duyệt rất tốn thời gian, dễ xảy ra lỗi và không theo kịp tốc độ phát triển nhanh chóng.
Giải pháp với Selenium
Một kỹ sư QA đã tạo ra một Selenium lưới thiết lập để thực hiện cùng một bộ kiểm tra đồng thời trên nhiều trình duyệt và kết hợp hệ điều hành. Các bài kiểm tra được biên soạn trong Python sử dụng Selenium WebDriver cho các hành động như đăng nhập, lọc biểu đồ và xuất dữ liệu.
Kết quả
- Giảm thời gian hồi quy xuống 80%.
- Phát hiện sớm các lỗi hiển thị cụ thể của trình duyệt (ví dụ: đồ thị không thẳng hàng trong IE).
- Duy trì UX bảng điều khiển nhất quán trên toàn bộ ma trận trình duyệt mà không cần thêm chu trình thủ công.
⚙️ Nghiên cứu tình huống 2: Tích hợp CI/CD cho ứng dụng web thông qua Selenium + TestNG
Kịch bản
Một công ty phát triển web cỡ trung dựa vào đường ống CI/CD sử dụng Jenkins. Họ cần đảm bảo hành trình của người dùng cốt lõi hoạt động sau mỗi lần thay đổi mã.
Thách thức
Việc triển khai bản dựng mới đôi khi làm gián đoạn luồng người dùng—đăng nhập, gửi biểu mẫu—và không bị phát hiện cho đến khi kiểm tra thủ công vào cuối ngày.
Giải pháp với Selenium
Một người thử nghiệm đã thực hiện một JavaDựa trên Selenium Bộ WebDriver được tích hợp với TestNG. Các thử nghiệm bao gồm xác thực, cập nhật hồ sơ và chức năng tìm kiếm. Những chức năng này chạy trên mọi bản dựng Jenkins, tận dụng thực thi song song và tham số hóa trình duyệt.
Kết quả
- Đạt được phản hồi nhanh khi có lỗi: các luồng bị hỏng được đánh dấu ngay lập tức.
- Giảm hơn 60% lỗi sau khi triển khai.
- Cho phép các nhà phát triển giải quyết các vấn đề trước khi chúng đến được bộ phận QA.
🚀 Nghiên cứu tình huống 3: Đẩy nhanh việc phát hành tính năng cho Travel Aggregator
Kịch bản
Một nền tảng tổng hợp du lịch cần phát hành tính năng đặt vé máy bay được cải tiến. Các thử nghiệm hồi quy thủ công trên hơn 10 trang mất nhiều ngày và đã chặn phát hành.
Thách thức
Áp lực rút ngắn thời gian đưa sản phẩm ra thị trường không thể vượt qua được chu kỳ thử nghiệm thủ công, dẫn đến nguy cơ chậm trễ hoặc chất lượng giảm.
Giải pháp với Selenium & Mô hình đối tượng trang
Người đứng đầu bộ phận tự động hóa QA đã giới thiệu cấu trúc Mô hình đối tượng trang (POM) bằng C#. Selenium Các tập lệnh WebDriver đóng gói các thành phần và hành động của trang (tìm kiếm chuyến bay, áp dụng bộ lọc và trường hợp thanh toán). Các lần chạy thử nghiệm tự động được kích hoạt hàng đêm trên GitLab CI.
Kết quả
- Thời gian thử nghiệm giảm từ 3 ngày xuống chỉ còn 4 giờ.
- Việc tái sử dụng tập lệnh trên nhiều tính năng giúp giảm 50% công sức viết tập lệnh.
- Sự tự tin tăng lên: bản phát hành được ra mắt đúng thời hạn với rất ít báo cáo lỗi.
Chung Selenium Thách thức (và cách khắc phục)
Mặc dù Selenium Mặc dù mạnh mẽ, nhưng người kiểm thử thường gặp phải những thách thức có thể ảnh hưởng đến độ tin cậy và tốc độ. Dưới đây là một số vấn đề phổ biến và cách khắc phục:
- Kiểm tra không ổn định:
Các bài kiểm tra có thể thất bại ngẫu nhiên do thời gian hoặc sự cố mạng.
Khắc phục: Sử dụng lệnh chờ rõ ràng và trình định vị ổn định; tránhThread.sleep(). - Các thành phần web động:
Việc thay đổi ID phần tử hoặc XPath sẽ gây ra lỗi không tìm thấy phần tử.
Khắc phục: Sử dụng XPath tương đối, bộ chọn CSS hoặc xử lý thuộc tính động. - SyncCác vấn đề về hronization:
Các phần tử tải chậm hơn so với quá trình thực thi tập lệnh.
Khắc phục: Triển khai WebDriverWait với các điều kiện mong đợi. - Sự không nhất quán giữa các trình duyệt:
Các bài kiểm tra hoạt động khác nhau trên Chrome, Firefoxhoặc Cạnh.
Khắc phục: Chạy thử nghiệm trên Selenium Nền tảng lưới hoặc đám mây để xác thực trên nhiều trình duyệt. - Xử lý cửa sổ bật lên và cảnh báo:
Các cửa sổ bật lên bất ngờ có thể làm gián đoạn luồng thử nghiệm.
Khắc phục: Sử dụng SeleniumGiao diện cảnh báo hoặc khối try-catch để xử lý chúng một cách khéo léo. - Chi phí bảo trì thử nghiệm:
Những thay đổi thường xuyên về UI khiến các bài kiểm tra trở nên dễ bị lỗi.
Khắc phục: Áp dụng Mô hình đối tượng trang (POM) và kiểm soát phiên bản để dễ dàng cập nhật. - Thách thức hội nhập:
Đường ống CI/CD có thể bị lỗi do sự cố trình điều khiển.
Khắc phục: Sử dụng Selenium Người quản lý (Selenium 4+) hoặc WebDriver Manager để tự động quản lý trình điều khiển.
Trong ngắn hạn: Hầu hết Selenium các vấn đề bắt nguồn từ sự đồng bộ hóa kém hoặc bộ định vị dễ hỏng—cả hai đều có thể giải quyết thông qua chế độ chờ thông minh hơn, thiết kế mô-đun và bảo trì liên tục.




.png)
.jpg)
.jpg)
.jpg)



