2010-10-24 45 views
20

Tôi không chắc mình hoàn toàn hiểu được sự khác biệt. WebDriver API cũng trực tiếp kiểm soát trình duyệt của sự lựa chọn. Khi nào bạn nên sử dụng điều khiển từ xa selenium (selenium RC) thay thế?Sự khác biệt giữa Điều khiển từ xa của Selenium so với WebDriver là gì?

Hiện tại, tình hình hiện tại của tôi là tôi đang thử nghiệm một ứng dụng web bằng cách viết một bộ với API Selenium WebDriver và cho phép nó chạy trên máy tính của tôi. Các thử nghiệm mất nhiều thời gian hơn và lâu hơn để hoàn thành, vì vậy tôi đã tìm kiếm các cách để chạy các thử nghiệm trên một máy chủ Linux.

Nếu tôi sử dụng Điều khiển từ xa Selenium, điều này có nghĩa là tôi phải viết lại mọi thứ tôi đã viết với API WebDriver không?

Tôi đang bối rối với Selenium Grid, Hudson, Selenium RC. Tôi tìm thấy một plugin Lưới Selenium cho Hudson, nhưng không chắc chắn nếu điều này bao gồm Selenium RC.

Tôi có đang sử dụng đúng tuyến đường không? Tôi hình dung ra kiến ​​trúc sau:

  • Hudson chạy trên một vài máy chủ chuyên dụng của Ubuntu.
  • Hudson đang chạy với Xvnc & Plugin Selenium Grid. (Tôi có cần phải cài đặt riêng Firefox không?)
  • Lưới selen chạy selenium bộ kiểm tra RC.

Tôi nghĩ điều này hiệu quả hơn nhiều so với chạy thử nghiệm trên máy tính để bàn hiện tại của tôi với API WebDriver.

+0

Bản sao chính xác của [mối quan hệ giữa selenium rc và webdriver là gì?] (Http://stackoverflow.com/questions/3619824/whats-the-relationship-between-selenium-rc-and-webdriver) –

Trả lời

3

Theo như tôi hiểu, việc triển khai Webdriver bắt đầu ít hơn so với Selenium RC. Theo quan điểm của tôi, WebDriver là giải pháp linh hoạt hơn, đã khắc phục được một số vấn đề khó chịu của SeleniumRC.

WebDriver cung cấp giao diện chuẩn để thử nghiệm GUI web. Có một số triển khai của giao diện này (HTTP, trình duyệt cụ thể và dựa trên Selenium). Vì bạn đã có một số bài kiểm tra WebDriver, bạn phải làm quen với các tài liệu cơ bản như this

Các thử nghiệm sẽ mất nhiều thời gian hơn để hoàn thành, vì vậy tôi đã tìm cách chạy thử nghiệm trên máy chủ Linux.

Bạn có cố gắng tìm các nút cổ chai thực tế không? Tôi không chắc chắn, việc loại bỏ lớp WebDriver sẽ giúp ích cho bạn. Tôi nghĩ, hầu hết thời gian được dùng cho các lệnh Selenium gửi và các yêu cầu HTTP tới hệ thống đang được kiểm tra.

Nếu tôi sử dụng điều khiển từ xa sleneium, không này có nghĩa là tôi phải viết lại tất cả những gì tôi đã viết với WebDriver API?

Nói chung, có. Nếu bạn không thực hiện một số lớp bổ sung giữa các mã kiểm tra và WebDriver.

Đối với lưới Selenium: Bạn có thể bắt đầu một số phiên bản RC Selenium trên nhiều nút [ảo] khác nhau, sau đó đăng ký chúng trong Selenium Grid. Các bài kiểm tra của bạn kết nối với Selenium Grid và nó chuyển hướng tất cả các lệnh tới các cá thể SeleniumRC, điều phối chúng theo các trình duyệt được yêu cầu.

Để biết chi tiết của hudson cắm bạn có thể tìm thêm thông tin here

14

WebDriver tại là Selenium 2. Selenium và WebDriver đang căn cứ đang được sáp nhập. WebDriver vượt qua một số vấn đề mà Selenium có và Selenium vượt qua một số vấn đề mà Webdriver có.

Nếu bạn đã viết bài kiểm tra trong Selenium, bạn không phải viết lại để làm việc với Selenium 2. Chúng tôi, các nhà phát triển cốt lõi, đã viết nó để bạn tạo một thể hiện trình duyệt và tiêm vào Selenium và Thử nghiệm Selenium 1 sẽ hoạt động trong Selenium 2. Tôi đã đưa ra một ví dụ dưới đây cho bạn.

// You may use any WebDriver implementation. Firefox is used here as an example 
WebDriver driver = new FirefoxDriver(); 

// A "base url", used by selenium to resolve relative URLs 
String baseUrl = "http://www.google.com"; 

// Create the Selenium implementation 
Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl); 

// Perform actions with selenium 
selenium.open("http://www.google.com"); 
selenium.type("name=q", "cheese"); 
selenium.click("name=btnG"); 

Selenium 2 không may đã không được đưa vào Selenium 2 nhưng nó không nên quá dài cho đến khi nó đã được thêm vào vì chúng ta đang hy vọng sẽ đạt beta trong vài tháng tới.

+2

+1. điều này đã giúp tôi lấy mã của tôi được sửa. Chuyển từ IDE sang WebDriver là điều khó chịu nhất. Tài liệu của Selenium thật khủng khiếp. Tôi tiếp tục phải tìm ra ngoại lệ sau khi ngoại lệ. Bạn có biết bất kỳ tài liệu nào giúp chuyển đổi không? Tôi đã nhận được xung quanh phần mở rộng người dùng. Bây giờ tôi đang cố gắng tìm ra lý do tại sao người định vị không hoạt động (như LinkText hoặc XPath). Có vẻ như việc chuyển đổi định dạng trong IDE không thực sự hoạt động tốt. – MacGyver

+0

Vẫn còn một chút nhầm lẫn về cách Selenium RC phù hợp với hình ảnh dựa trên câu trả lời đó. Khi bạn nói "cơ sở mã Selenium và WebDriver đang được hợp nhất", bạn có đề cập đến Selenium RC như Selenium không? –

+0

@EinDoofusyes, trong bối cảnh này Selenium là Selenium RC (hoặc còn được gọi là Selenium 1.0) và WebDriver, cũng ... WebDriver. Họ cùng nhau được sáp nhập vào Selenium WebDriver (aka Selenium 2.0) – Stas

Các vấn đề liên quan