tốt, sẽ cố gắng giải thích sự khác biệt chi tiết.
Nói về thử nghiệm song song, tốt hơn nên sử dụng lưới selen. Khái niệm cơ bản về selenium RC và lưới selen. Bạn có thể nhận được vào chi tiết hơn here
Một số từ về selen webDriver:
Các tính năng mới trong chính Selenium 2.0 là sự tích hợp của API WebDriver. WebDriver được thiết kế để cung cấp một giao diện lập trình đơn giản hơn, súc tích hơn cùng với việc giải quyết một số hạn chế trong API Selenium-RC. Selenium-WebDriver được phát triển để hỗ trợ tốt hơn các trang web động mà các thành phần của một trang có thể thay đổi mà không cần trang được tải lại. Mục tiêu của WebDriver là cung cấp một API hướng đối tượng được thiết kế tốt, cung cấp hỗ trợ được cải thiện cho các vấn đề kiểm tra ứng dụng web nâng cao hiện đại.
WebDriver ‘Drive’ trình duyệt so với Selenium-RC như thế nào?
Selenium-WebDriver thực hiện cuộc gọi trực tiếp tới trình duyệt bằng cách sử dụng hỗ trợ gốc của mỗi trình duyệt để tự động hóa. Cách thực hiện các cuộc gọi trực tiếp này và các tính năng mà họ hỗ trợ phụ thuộc vào trình duyệt bạn đang sử dụng. Thông tin về mỗi "trình điều khiển trình duyệt" được cung cấp sau trong chương này. Đối với những người quen thuộc với Selenium-RC, điều này là khá khác với những gì bạn đang sử dụng để. Selenium-RC làm việc theo cùng một cách cho mỗi trình duyệt được hỗ trợ. Các hàm JavaScript 'được tiêm' vào trình duyệt khi trình duyệt được tải và sau đó sử dụng javascript của nó để điều khiển AUT trong trình duyệt. WebDriver không sử dụng kỹ thuật này. Một lần nữa, nó lái trực tiếp trình duyệt bằng cách sử dụng tính năng hỗ trợ tự động hóa của trình duyệt.
WebDriver và Selenium-Server
Bạn có thể, hoặc có thể không, cần Server Selenium, tùy thuộc vào cách bạn định sử dụng Selenium-WebDriver. Nếu bạn chỉ sử dụng API WebDriver, bạn không cần máy chủ Selenium. Nếu trình duyệt và kiểm tra của bạn sẽ chạy trên cùng một máy, và các thử nghiệm của bạn chỉ sử dụng API WebDriver, thì bạn không cần chạy Máy chủ Selenium; WebDriver sẽ chạy trình duyệt trực tiếp. Có một số lý do để sử dụng Selenium-Server với Selenium-WebDriver.
- Bạn đang sử dụng Selenium-Grid để phân phối thử nghiệm trên nhiều máy hoặc máy ảo (VM).
- Bạn muốn kết nối với máy từ xa có một phiên bản cụ thể không có trong máy hiện tại của bạn.
- Bạn không sử dụng các ràng buộc Java (tức là Python, C#, hoặc Ruby) và muốn sử dụng HtmlUnit driver
Selenium-WebDriver Drivers của WebDriver là tên của giao diện chính chống lại thử nghiệm nào nên được viết, nhưng có một số triển khai. Chúng bao gồm:
HtmlUnit driver này hiện là việc thực hiện nhanh nhất và nhẹ nhất của WebDriver. Như tên cho thấy, điều này được dựa trên HtmlUnit. HtmlUnit là một thực thi dựa trên java của một WebBrowser mà không có GUI. Đối với bất kỳ ràng buộc ngôn ngữ nào (ngoài java), máy chủ Selenium được yêu cầu sử dụng trình điều khiển này.
Ưu
- thực hiện nhanh nhất của WebDriver
- Một giải pháp Java tinh khiết và vì vậy nó là nền tảng độc lập.
- Hỗ trợ JavaScript
Nhược điểm
- Giả lập hành vi các trình duyệt khác JavaScript (xem dưới đây)
JavaScript trong trình HtmlUnit driver Không ai trong số các trình duyệt phổ biến sử dụng động cơ Javascript được sử dụng bởi HtmlUnit (Rhino).Nếu bạn kiểm tra JavaScript bằng cách sử dụng HtmlUnit kết quả có thể khác đáng kể so với các trình duyệt đó. Khi chúng tôi nói “JavaScript”, chúng tôi thực sự có nghĩa là “JavaScript và DOM”. Mặc dù DOM được định nghĩa bởi W3C, mỗi trình duyệt đều có những điều kỳ quặc và khác biệt trong việc triển khai DOM của chúng và cách JavaScript tương tác với nó. HtmlUnit có một sự thực thi đầy ấn tượng của DOM và có hỗ trợ tốt cho việc sử dụng JavaScript, nhưng nó không khác với bất kỳ trình duyệt nào khác: nó có những điều kỳ quặc và khác biệt so với chuẩn W3C và triển khai DOM của các trình duyệt chính, mặc dù khả năng bắt chước các trình duyệt khác. Với WebDriver, chúng tôi phải lựa chọn; chúng tôi có bật khả năng JavaScript của HtmlUnit và chạy nguy cơ các nhóm gặp sự cố chỉ thể hiện ở đó hay chúng tôi để JavaScript bị vô hiệu hóa, biết rằng ngày càng có nhiều trang web dựa vào JavaScript? Chúng tôi đã sử dụng phương pháp bảo thủ và theo mặc định đã tắt hỗ trợ khi chúng tôi sử dụng HtmlUnit. Với mỗi bản phát hành của cả WebDriver và HtmlUnit, chúng tôi đánh giá lại quyết định này: chúng tôi hy vọng bật JavaScript theo mặc định trên HtmlUnit tại một số điểm.
Để điều tra sâu hơn vào setUp webDriver xem this
Từ HtmlUnit documentation: HtmlUnit không phải là một khuôn khổ kiểm tra đơn vị chung. Nó đặc biệt là một cách để mô phỏng một trình duyệt cho các mục đích thử nghiệm và được dự định sẽ được sử dụng trong một khung kiểm thử khác như JUnit hoặc TestNG.
Vì vậy để kết luận Selenium và sự khác biệt HtmlUnit: HtmlUnit là một java dựa thi hành một WebBrowser mà không có một giao diện đồ họa và một cách để mô phỏng một trình duyệt cho mục đích thử nghiệm và Selenium-WebDriver làm cho các cuộc gọi trực tiếp cho trình duyệt bằng cách sử dụng hỗ trợ gốc của mỗi trình duyệt để tự động hóa. chúng ta có thể thấy rằng HtmlUnit cung cấp API mà không có khả năng GUI cho tự động hóa trong khi WebDriver cung cấp khả năng tự động hóa trình duyệt nội bộ.
Phát biểu về tự động hóa điện thoại di động, Selenium cũng có một điều khiển iPhone iPhone Driver wiki article và Android điều khiển Android Driver wiki article
Xem thêm this presentation
Đáng tiếc là tôi không thể cung cấp cho bạn đánh giá kinh nghiệm làm việc của tôi về trình điều khiển di động như tôi đối phó với tự động hóa web (không có điện thoại di động). Cũng biết rằng Cucumber
(công cụ tự động hóa) phổ biến trong số các thiết bị di động. xem this và this.
Hy vọng nó sẽ trở nên rõ ràng hơn một chút lil cho bạn bây giờ =)
Các bạn đã nghĩ đến việc sử dụng PhantomJS hoặc "Headless Chrome" để thay thế ? – djangofan