Là gì Selenium? Giới thiệu Hướng dẫn
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".
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 2004. Là một kỹ sư tại ThoughtWorks, anh ấy đang làm việc trên một ứng dụng web yêu cầu thử nghiệm thường xuyên. Nhận thấy rằng việc kiểm tra thủ công lặp đi lặp lại của ứng dụng của họ ngày càng trở nên kém hiệu quả, anh ấy đã tạo ra một JavaScript chương trình sẽ tự động kiểm soát hành động của trình duyệt. Ông đặt tên 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 đó đượ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 giống nhau sẽ chỉ cho phép randomScript.js truy cập các trang trong google.com 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 nhau như yahoo.com/search hoặc guru99.com vì chúng thuộc các tên miền khác nhau.
Đây chính là lý do tại sao trước 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 để chúng thuộc cùng một miền
Ngày sinh của Selenium Điều khiển từ xa (Selenium RC)
Không may thay; người 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 xuất xứ tương tự. Vậy một kỹ sư khác của ThoughtWork, 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 kiểm thử càng nhiều càng tốt. Ban đầu ông gọi hệ thống này là “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ả 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 của 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 nảy ra ý tưởng này để tăng thêm 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. Đó là khung thử nghiệm đa nền tảng đầu tiên có thể kiểm soát trình duyệt 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 các 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 framework phổ biến được thực hiện bởi công ty có tên là Mercury Interactive (vâng, công ty ban đầu sản xuất QTP trước khi được HP mua lại). Từ 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 |
|
So sánh giữa Selenium và QTP (nay là UFT)
Kiểm tra nhanh chuyên nghiệp (QTP) là một công cụ kiểm tra tự động độc quyền trước đây thuộc sở hữu của công ty Mercury Interactive trước khi Hewlett-Packard mua lại nó trong 2006. Chủ sở hữu sau này của nó là MicroFocus và công cụ này được đổi tên thành UFT one. Selenium Bộ công cụ có nhiều ưu điểm hơn QTP Như chi tiết dưới đây -
Ưu điểm và lợi ích của Selenium qua QTP
Selenium | QTP |
---|---|
Mã nguồn mở, dùng miễn phívà miễn phí | Thương mại. |
Khả năng mở rộng cao | Tiện ích bổ sung hạn chế |
Có thể chạy thử nghiệm trên các trình duyệt khác nhau | Chỉ có thể chạy thử nghiệm trong Firefox, Internet Explorer và cơ rôm |
Hỗ trợ hệ điều hành khác nhau | Chỉ có thể được sử dụng trong Windows |
Hỗ trợ thiết bị di động | QTP hỗ trợ tự động kiểm tra ứng dụng di động (iOS & Android) sử dụng giải pháp HP mang tên – HP Mobile Center |
Có thể thực hiện các bài kiểm tra trong khi các trình duyệt được thu nhỏ | Cần phải có ứng dụng đang được thử nghiệm để hiển thị trên màn hình |
Có thể thực hiện các bài kiểm tra song song. | Chỉ có thể thực hiện song song nhưng sử dụng Trung tâm chất lượng lại là sản phẩm trả phí. |
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ì trải nghiệm người dùng (UX) của 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 các 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, 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.
Ưu điểm của QTP so với Selenium
QTP | Selenium |
---|---|
Có thể kiểm tra cả ứng dụng web và máy tính để bàn | Chỉ có thể kiểm tra các ứng dụng web |
Đi kèm với một kho lưu trữ đối tượng tích hợp | Không có kho lưu trữ đối tượng tích hợp |
Tự động hóa nhanh hơn Selenium bởi vì nó là một IDE đầy đủ tính năng. | Tự động hóa với tốc độ chậm hơn vì nó không có IDE gốc và chỉ có thể sử dụng IDE của bên thứ ba để phát triển. |
Kiểm thử dựa trên dữ liệu dễ thực hiện hơn vì nó có các bảng dữ liệu cục bộ và toàn cầu tích hợp. | Thử nghiệm dựa trên dữ liệu sẽ phức tạp hơn vì bạn phải dựa vào khả năng của ngôn ngữ lập trình để đặt giá trị cho dữ liệu thử nghiệm của mình |
Có thể truy cập các điều khiển trong trình duyệt(chẳng hạn như thanh Mục ưa thích, thanh Địa chỉ, nút Quay lại và Chuyển tiếp, v.v.) | Không thể truy cập các phần tử bên ngoài ứng dụng web đang được thử nghiệm |
Cung cấp chuyên nghiệp hỗ trợ khách hàng | Không có hỗ trợ người dùng chính thức đang được cung cấp. |
Có khả năng bản địa để xuất dữ liệu thử nghiệm sang các định dạng bên ngoài | Không có khả năng riêng để xuất dữ liệu thời gian chạy sang các định dạng bên ngoài |
Hỗ trợ tham số hóa được xây dựng | Việc tham số hóa có thể được thực hiện thông qua lập trình nhưng rất khó thực hiện. |
Báo cáo thử nghiệm được tạo tự động | Không có hỗ trợ gốc để tạo báo cáo kiểm tra/lỗi. |
Mặc dù rõ ràng, QTP có nhiều khả năng nâng cao hơn, Selenium vượt trội hơn QTP ở ba lĩnh vực chính:
- Chi phí(bởi vì Selenium hoàn toàn miễn phí)
- Linh hoạt(vì nó có thể hỗ trợ một số ngôn ngữ lập trình, trình duyệt và nền tảng)
- Thử nghiệm song song(thứ mà QTP có thể làm được nhưng chỉ khi sử dụng Trung tâm chất lượng)
Tổng kết
- Toàn bộ Selenium Bộ kiểm thử phần mềm bao gồm bốn thành phần:
- Selenium Ý tưởng Firefox và tiện ích bổ sung Chrome mà bạn chỉ có thể sử dụng khi tạo các trường hợp thử nghiệm và bộ thử nghiệm tương đối đơn giản.
- Selenium Điều khiển từ xa hay còn gọi là Selenium 1, là lần đầu tiên Selenium công cụ cho phép người dùng sử dụng ngôn ngữ lập trình để tạo các bài kiểm tra phức tạp.
- WebDriver, là bước đột phá mới hơn cho phép tập lệnh thử nghiệm của bạn giao tiếp trực tiếp với trình duyệt, từ đó kiểm soát nó từ cấp độ hệ điều hành.
- Selenium Lưới cũng là một công cụ được sử dụng với Selenium RC để thực hiện 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 hợp nhất thành dạng Selenium 2.
- Selenium có lợi thế hơn Microfocus UFT One về mặt chi phí và tính linh hoạt.