Selenium là gì?
Scrapeless Agent Browser cung cấp cơ sở hạ tầng trình duyệt đám mây cho các khách hàng tự động hóa được hỗ trợ, bao gồm các kết nối Playwright và Puppeteer đã được tài liệu hóa.
Selenium là một dự án mã nguồn mở cung cấp công cụ và thư viện cho việc tự động hóa trình duyệt. Các thành phần chính của nó bao gồm WebDriver để điều khiển trình duyệt theo chương trình, Grid để thực thi từ xa và phân tán, và IDE để ghi lại và phát triển các tương tác trình duyệt. Selenium thường được liên kết với thử nghiệm web, nhưng lớp điều khiển trình duyệt có ích ngoài một mẫu thử nghiệm đơn.
Dự án không thay thế trình duyệt bằng một bộ phân tích HTML mô phỏng. WebDriver điều khiển một trình duyệt thật được hỗ trợ thông qua giao diện tự động hóa của nó. Mã kiểm tra của bạn xác định các hành động và kiểm tra, trong khi trình duyệt tải ứng dụng. Sự tách biệt đó cho phép các bài kiểm tra thực hiện ứng dụng như đã triển khai mà không cần nhúng Selenium vào mã nguồn của ứng dụng.
Cách các thành phần của Selenium hoạt động cùng nhau
Các thành phần của Selenium giải quyết các phần khác nhau trong quy trình tự động hóa. Trong Tổng quan dự án Selenium phân biệt WebDriver, IDE và Grid. Hiểu sự khác biệt giúp một nhóm chọn chỉ các tiện ích mà nó cần thay vì coi mọi tác vụ Selenium là một dự án kiểm tra phân tán.
| Thành phần | Vai trò chính | Những gì đội ngũ vẫn xác định |
|---|---|---|
| WebDriver | Kiểm soát phiên trình duyệt | Logic nhiệm vụ và khẳng định |
| Lưới | Phân phối các phiên duyệt web từ xa | Khả năng thực thi và quyền sở hữu bài kiểm tra |
| IDE | Ghi lại và phát triển các tương tác | Các mục tiêu ổn định và tiêu chí chấp nhận |
Một bài kiểm tra địa phương có thể sử dụng WebDriver mà không cần Grid. Một bộ kiểm tra lớn hơn có thể sử dụng Grid để đặt các phiên trình duyệt trên các máy khác hoặc sự kết hợp nền tảng khác nhau. Một tương tác đã được ghi lại có thể giúp tài liệu hóa một hành trình, nhưng chỉ ghi âm không đủ để xác định rằng hành trình đó kiểm tra kết quả đúng hay vẫn ổn định khi ứng dụng thay đổi.
Những gì WebDriver tiêu chuẩn hóa
WebDriver tiêu chuẩn hóa một giao diện điều khiển từ xa cho hành vi của trình duyệt như điều hướng và tương tác với các phần tử. Các Đặc tả WebDriver mô tả các phiên, lệnh và ngữ nghĩa hướng trình duyệt. Các liên kết ngôn ngữ cho phép các nhà phát triển diễn đạt những thao tác đó thông qua các giao diện lập trình quen thuộc.
Một phiên kết nối các lệnh của bài kiểm tra với một phiên bản trình duyệt có cấu hình được chọn. Bài kiểm tra có thể điều hướng, xác định các phần tử và yêu cầu các tương tác. Kết quả và lỗi được trả về qua giao diện tự động hóa. Một triển khai từ xa di chuyển trình duyệt đến nơi khác nhưng vẫn giữ nguyên yêu cầu về một giao thức lệnh đã thỏa thuận.
Sự phân biệt giao thức là quan trọng khi đánh giá các dịch vụ. Một điểm cuối trình duyệt được mô tả như một kết nối giao thức gỡ lỗi không tự động trở thành một điểm cuối WebDriver. Chỉ một giao thức WebSocket không đủ để làm cho hai giao thức trở nên có thể thay thế cho nhau. Xác minh giao diện được tài liệu hóa và hỗ trợ khách hàng trước khi giả định rằng một bộ công cụ Selenium hiện có có thể sử dụng một dịch vụ.
Cách một bài kiểm tra Selenium mô tả hành trình của người dùng
Một bài kiểm tra Selenium kết hợp các tương tác của trình duyệt với các xác nhận được cung cấp bởi mã kiểm tra và khung xung quanh. Các hành động thiết lập một kịch bản; các xác nhận xác định liệu hành vi quan sát được có phù hợp với yêu cầu hay không. Nếu không có điều kiện chấp nhận, một kịch bản có thể hoàn thành thành công trong khi còn thiếu một lỗi ứng dụng.
Đối với một bài kiểm tra đăng nhập thử nghiệm minh họa, việc nhập thông tin xác thực thử nghiệm hợp lệ và nhấn nút gửi là các hành động. Việc xác nhận rằng người dùng thử nghiệm mong đợi đến đúng trang tài khoản là kiểm tra kết quả. Một thông điệp thành công chung có thể không đủ nếu nó có thể xuất hiện cho một tài khoản khác hoặc một hành động trước đó.
Các mục tiêu của phần tử nên phản ánh mục đích của tương tác. Một định danh hoặc nhãn có ý nghĩa thường dễ duy trì hơn là một đường dẫn dài qua các bộ chứa bố cục. Khi một trang chứa các điều khiển lặp lại, hãy giới hạn mục tiêu đến biểu mẫu hoặc phần liên quan. Hãy coi sự mơ hồ như một vấn đề thiết kế thử nghiệm thay vì chọn một phần tử khớp tùy ý.
Tại sao Đồng bộ hóa là một Vấn đề Thiết kế Kiểm thử
Đồng bộ hóa căn chỉnh một lệnh Selenium với trạng thái của ứng dụng mà nó nên chạy. Việc hoàn tất điều hướng không đảm bảo rằng mọi phần tử được tạo ra động đều có sẵn. Một kịch bản thực hiện trước khi trạng thái cần thiết tồn tại có thể thất bại ngay cả khi ứng dụng hoạt động đúng cách.
Xác định các điều kiện chờ xung quanh các điều kiện có ý nghĩa. Một bảng kết quả có thể cần hiển thị một tài khoản được chọn hoặc một trạng thái đã hoàn thành, chứ không chỉ tồn tại ở đâu đó trong tài liệu. Một yếu tố có thể tồn tại nhưng bị ẩn, và một điều khiển hiển thị có thể vẫn không phù hợp cho bước hiện tại. Điều kiện yêu cầu nên mô tả chuyển tiếp hợp lệ tiếp theo của nhiệm vụ.
Giấc ngủ cố định lâu dài làm mờ đi lý do này. Chúng mã hóa một khoảng thời gian được giả định thay vì một trạng thái được quan sát và có thể làm cho cả môi trường chậm và nhanh khó hiểu hơn. Thiết lập một điều kiện giới hạn và làm cho báo cáo thất bại xác định trạng thái bị thiếu. Điều này cung cấp cho nhóm bằng chứng về ứng dụng thay vì một triệu chứng thời gian bí ẩn.
Những gì Grid thêm vào Thực thi Từ xa
Selenium Grid định tuyến các phiên tới các môi trường thực thi từ xa để một bộ có thể kiểm tra các máy và cấu hình trình duyệt khác nhau. Phân phối có thể tăng cường khả năng thực thi sẵn có, nhưng nó cũng làm phát sinh các vấn đề về lập lịch tài nguyên và trạng thái chia sẻ. Một bộ phân tán vẫn cần các bài kiểm tra có thể chạy độc lập nơi mà sự độc lập được mong đợi.
Các bài kiểm tra song song có thể xung đột thông qua dữ liệu phía máy chủ ngay cả khi trình duyệt của chúng là riêng biệt. Hai phiên chỉnh sửa cùng một tài khoản kiểm tra hoặc tài nguyên có thể làm vô hiệu hóa các giả định của nhau. Cung cấp các kịch bản có quyền sở hữu dữ liệu thích hợp, hoặc cố ý phối hợp hoạt động chia sẻ nếu tính đồng thời chính là hành vi đang được kiểm tra.
Kế hoạch năng lực nên sử dụng yêu cầu về trình duyệt và máy của khối lượng công việc. Một trang với công việc kết xuất nặng có thể đặt ra những yêu cầu khác nhau cho một máy chủ so với một bài kiểm tra biểu mẫu nhỏ. Đo thời gian hoàn thành và mức sử dụng tài nguyên cho các kịch bản đại diện. Chỉ đơn giản là tăng số phiên đồng thời được yêu cầu không chứng minh rằng cơ sở hạ tầng có thể thực hiện tốt chúng.
WebDriver BiDi phù hợp ở đâu
WebDriver BiDi định nghĩa một giao thức tự động hai chiều cho phép các lệnh và sự kiện trình duyệt chảy qua một kết nối liên tục. Đặc tả WebDriver BiDi bao gồm mô hình hướng sự kiện này. Các sự kiện trình duyệt có thể giúp một bộ điều khiển quan sát hoạt động mà không cần giảm mọi quan sát thành một lệnh một chiều riêng biệt.
Tính khả dụng của giao thức và hỗ trợ tính năng cần được xác minh cho trình duyệt thực tế, phiên bản khách và dịch vụ từ xa. Sự tồn tại của một tiêu chuẩn không chứng minh rằng mọi thực thi đều phơi bày mọi thao tác. Một bài kiểm tra phụ thuộc vào một sự kiện cụ thể cần kiểm tra tính tương thích cho sự kiện đó trong môi trường triển khai của nó.
Tách biệt sự tiến hóa của giao thức khỏi mục đích của bài kiểm tra. Nếu yêu cầu là một người dùng có thể hoàn thành một quy trình làm việc, trạng thái ứng dụng cuối cùng của nó vẫn là tiêu chí chấp nhận. Bằng chứng mạng hoặc bảng điều khiển bổ sung có thể giải thích một thất bại, nhưng nó không nên âm thầm thay thế kết quả hiển thị cho người dùng đang được kiểm tra.
Chọn Selenium cho một đội
Selenium là một sự lựa chọn hợp lý khi một đội cần tự động hóa trình duyệt phù hợp với các ngôn ngữ được hỗ trợ, cơ sở hạ tầng thử nghiệm hiện có và các yêu cầu về trình duyệt. Đánh giá các yêu cầu đó trực tiếp. Tránh chọn một khuôn khổ chỉ từ một bảng xếp hạng chung hoặc một so sánh tốc độ không đủ điều kiện.
Một bộ hiện có có thể chứa kiến thức miền quý giá trong các thiết lập và khẳng định của nó. Việc thay thế thư viện điều khiển trình duyệt không tự động cải thiện kiến thức đó. Trước tiên xác định vấn đề thực tế: xung đột dữ liệu kiểm tra, chờ đợi không rõ ràng, trình duyệt không khả dụng hoặc bảo trì hoạt động. Giải pháp có thể là một sự thay đổi hẹp hơn so với một cuộc di cư hoàn toàn.
Cuộc thảo luận liên quan đến Thu thập dữ liệu web dựa trên Selenium khám phá một cách sử dụng vượt ra ngoài các bài kiểm tra hồi quy giao diện. Giữ độ chính xác của việc trích xuất tách biệt với độ chính xác của bài kiểm tra: một kịch bản có thể đọc một trang vẫn cần quy tắc cho việc phát hiện hoàn chỉnh, các trường bị thiếu và ngữ cảnh nguồn.
Đánh giá một Trình duyệt Đám mây Cùng với Selenium
Một trình duyệt đám mây có thể được đánh giá như một tùy chọn thực thi riêng biệt, nhưng tính tương thích phải được thiết lập trước khi gọi nó là sự thay thế cho một thời gian chạy Selenium. Trình duyệt đại lý không có rác tài liệu các kết nối điều khiển trình duyệt được hỗ trợ trong tổng quan cơ sở hạ tầng trình duyệt của nó.
Các kết nối đã được tài liệu hóa của Playwright và Puppeteer không phải là bằng chứng về một điểm cuối Selenium Grid cắm vào. Nếu một quy trình làm việc chuyển sang một khách hàng được hỗ trợ khác, hãy chọn các tương tác và khẳng định đã chuyển đổi một cách rõ ràng. So sánh giá dịch vụ hiện tại chỉ sau khi xác nhận kiến trúc có thể thực hiện công việc cần yêu cầu.
Kết luận
Selenium là một dự án tự động hóa trình duyệt với các công cụ khác biệt cho điều khiển, ghi âm và thực thi phân phối. Việc sử dụng hiệu quả phụ thuộc vào các khẳng định có ý nghĩa, đồng bộ hóa rõ ràng và hỗ trợ môi trường được xác minh. Bắt đầu với hành trình trình duyệt và các tiêu chí chấp nhận của nó, sau đó chọn các thành phần và triển khai Selenium hỗ trợ chúng.
Đưa Quy trình Làm việc Trình duyệt của Bạn vào Thực tiễn
Đánh giá các khách hàng đã được tài liệu của Trình duyệt đại lý cho một quy trình làm việc trình duyệt phù hợp.
Đăng ký ngay hôm nay và nhận $5 tín dụng miễn phí — không yêu cầu thẻ tín dụng.
Nhận Tín dụng $5 của Bạn →Câu hỏi thường gặp
Selenium là một trình duyệt hay một ngôn ngữ lập trình?
Selenium không phải là một trình duyệt cũng không phải là một ngôn ngữ lập trình. Đây là một dự án cung cấp các công cụ tự động hóa trình duyệt và liên kết ngôn ngữ. Các bài kiểm tra được viết bằng ngôn ngữ được hỗ trợ và thực hiện trên trình duyệt được hỗ trợ.
Tất cả các bài kiểm tra Selenium có cần Grid không?
Các bài kiểm tra Selenium không phải tất cả đều cần Grid. Một phiên WebDriver cục bộ có thể chạy một trình duyệt trên cùng một máy. Grid trở nên hữu ích khi phân phối từ xa hoặc nhiều môi trường thực thi là một phần của yêu cầu thử nghiệm.
Ghi âm một bài kiểm tra có chứng minh rằng nó đáng tin cậy không?
Ghi âm một bài kiểm tra lưu lại một chuỗi tương tác, nhưng tính đáng tin cậy cũng cần các mục tiêu ổn định, dữ liệu được kiểm soát, đồng bộ hóa và các khẳng định có ý nghĩa. Xem xét những gì ghi âm kiểm tra và cách nó hoạt động khi trang khác với phiên gốc.
Selenium có thể kết nối với bất kỳ WebSocket trình duyệt nào không?
Selenium không thể sử dụng một WebSocket trình duyệt tùy ý chỉ vì nó là một kết nối mạng. Điểm cuối phải nói một giao thức được hỗ trợ bởi thao tác khách hàng dự định. Xác nhận tính tương thích của WebDriver hoặc BiDi liên quan thay vì giả định sự tương đồng CDP.