Kiểm tra trình duyệt không sử dụng đầu Selenium: HTMLUnitDriver & PhantomJS

Mục lục:

Anonim

Trình điều khiển Selenium Web là một công cụ tự động hóa web cho phép bạn chạy các bài kiểm tra trên các trình duyệt khác nhau. Các trình duyệt này có thể là Internet Explorer, Firefox hoặc Chrome. Để sử dụng một trình duyệt cụ thể với Selenium, bạn cần có trình điều khiển tương ứng.

Khi chạy thử nghiệm, Selenium khởi chạy trình duyệt tương ứng được gọi trong tập lệnh và thực hiện các bước thử nghiệm. Bạn có thể thấy trình duyệt và quá trình thực thi thử nghiệm đang hoạt động.

Trình duyệt không đầu là gì?

Trình duyệt không có đầu là trình duyệt web không có giao diện người dùng đồ họa . Chương trình này sẽ hoạt động giống như một trình duyệt nhưng sẽ không hiển thị bất kỳ GUI nào.

Một số ví dụ về Trình điều khiển không đầu bao gồm

  • HtmlUnit
  • Con ma
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

Trong hướng dẫn này, chúng tôi sẽ tập trung vào HtmlUnit và PhatomJS

HTMLUnitDriver

HTML UnitDriver là trình duyệt không headless có trọng lượng nhẹ nhất và triển khai nhanh nhất dành cho WebDriver. Nó dựa trên HtmlUnit. Nó được gọi là Trình điều khiển trình duyệt không đầu . Nó giống như trình điều khiển Chrome, IE hoặc FireFox, nhưng nó không có GUI nên người ta không thể nhìn thấy quá trình thực thi thử nghiệm trên màn hình.

Các tính năng của trình điều khiển đơn vị HTML

  • Hỗ trợ các giao thức HTTPS và HTTP
  • Hỗ trợ cho các phản hồi HTML (nhấp vào liên kết, gửi biểu mẫu, xem mô hình DOM của tài liệu HTML, v.v.)
  • Hỗ trợ cho cookie
  • Hỗ trợ máy chủ proxy
  • Hỗ trợ xác thực cơ bản và NTLM
  • Hỗ trợ JavaScript tuyệt vời
  • Hỗ trợ các phương thức gửi GET và POST
  • Khả năng tùy chỉnh các tiêu đề yêu cầu được gửi đến máy chủ
  • Khả năng xác định xem liệu các phản hồi không thành công từ máy chủ có nên đưa ra các ngoại lệ hay nên được trả về dưới dạng các trang thuộc loại thích hợp

Các bước sử dụng trình điều khiển HTMLUnit với Selenium

Bước 1) Trong Eclipse, hãy sao chép đoạn mã sau. Thêm các tệp thư viện selen tiêu chuẩn vào dự án. Không có tệp jar bổ sung nào được yêu cầu.

gói htmldriver;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.WebElement;nhập org.openqa.selenium.htmlunit.HtmlUnitDriver;lớp công khai htmlUnitYest {public static void main (String [] args) {// Tạo một phiên bản mới của trình điều khiển đơn vị HTMLTrình điều khiển WebDriver = new HtmlUnitDriver ();// Điều hướng đến Googledriver.get ("http://www.google.com");// Định vị hộp tìm kiếm bằng tên của nóPhần tử WebElement = driver.findElement (By.name ("q"));// Nhập một truy vấn tìm kiếmelement.sendKeys ("Guru99");// Gửi truy vấn. Webdriver tự động tìm kiếm biểu mẫu bằng phần tử nhập văn bản// Không cần định vị / tìm nút gửielement.submit ();// Mã này sẽ in tiêu đề trangHệ thống. out .println ("Tiêu đề trang là: + driver.getTitle ());driver.quit ();}}

Bước 2) Chạy mã. Bạn sẽ quan sát thấy không có trình duyệt nào được khởi chạy và kết quả được hiển thị trong bảng điều khiển.

Lợi ích của Trình điều khiển đơn vị Html:

  • Vì nó không sử dụng bất kỳ GUI nào để kiểm tra, các bài kiểm tra của bạn sẽ chạy trong nền mà không có bất kỳ gián đoạn hình ảnh nào
  • So với tất cả các trường hợp khác, việc thực thi nhanh hơn
  • Để chạy các bài kiểm tra của bạn thông qua trình điều khiển HtmlUnit, bạn cũng có thể chọn các phiên bản trình duyệt khác
  • Nó độc lập với nền tảng và dễ dàng chạy nhiều thử nghiệm đồng thời hơn. Lý tưởng để kiểm tra tải.

Hạn chế:

  • Nó không thể mô phỏng hành vi JavaScript của các trình duyệt khác

PhantomJS

PhantomJS là một trình duyệt không có đầu với API JavaScript. Đây là một giải pháp tối ưu cho Kiểm tra trang web không đầu, truy cập và thao tác các trang web và đi kèm với API DOM tiêu chuẩn.

Để sử dụng PhantomJS với Seleniun, người ta phải sử dụng GhostDriver. GhostDriver là một triển khai của giao thức Webdriver Wire trong JS đơn giản cho PhantomJS.

Bản phát hành mới nhất của PhatomJS đã tích hợp GhostDriver và không cần cài đặt riêng.

Đây là cách hệ thống hoạt động-

Các bước chạy Selenium với PhatomJS

Bước 1) Bạn cần cài đặt Eclipse với Selenium

Bước 2) Tải xuống PhantomJS tại đây

Bước 3) Giải nén thư mục đã tải xuống thành Tệp chương trình

Bước 4) Tải xuống Trình điều khiển PhantomJS từ đây. Thêm bình vào dự án của bạn

Bước 5) Dán mã sau vào nhật thực

gói htmldriver;nhập java.io.File;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.WebElement;nhập org.openqa.selenium.phantomjs.PhantomJSDriver;bóng ma lớp công cộng {public static void main (String [] args) {File file = new File ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Trình điều khiển WebDriver = new PhantomJSDriver ();driver.get ("http://www.google.com");Phần tử WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Tiêu đề trang là: + driver.getTitle ());driver.quit ();}}

Bước 6) Chạy mã. Bạn sẽ thấy đầu ra được hiển thị trong bảng điều khiển và không có trình duyệt nào được khởi chạy.

LƯU Ý : Lần đầu tiên chạy, dựa trên cài đặt của bạn, bạn có thể nhận được cảnh báo bảo mật từ Windows để cho phép chạy PhantomJS. Nhấp vào Cho phép truy cập.

Nhiều tổ chức sử dụng Phantom.JS cho nhiều mục đích khác nhau, ví dụ:

  • Thử nghiệm không đầu
  • Chụp màn hình
  • Tự động hóa trang
  • Giám sát mạng
  • Để hiển thị ảnh chụp màn hình bảng điều khiển cho người dùng của họ
  • Để chạy các bài kiểm tra Đơn vị trên dòng lệnh
  • Để tạo sổ tay nhân viên từ HTML sang PDF
  • Kết hợp với QUnit cho bộ thử nghiệm

Tóm lược

Để kiểm tra ứng dụng nhanh chóng trên các trình duyệt khác nhau và không có bất kỳ gián đoạn hình ảnh nào, Kiểm tra trình duyệt không đầu được sử dụng. Do tốc độ, độ chính xác và các tính năng dễ truy cập, trình điều khiển đơn vị HTML và PhantomJS đang trở nên phổ biến để thử nghiệm trình duyệt không sử dụng đầu. Bằng cách làm theo một số bước đơn giản, bạn sẽ biết các công cụ này có thể được tích hợp với các công cụ khác một cách dễ dàng như thế nào và có thể thực thi mã kiểm tra.