2013-04-19 16 views
7

Tôi đã sử dụng Jasmine để thử nghiệm đơn vị nhưng gần đây đã tìm kiếm một công cụ để thực hiện thử nghiệm chức năng. Tên tôi thấy được đề cập rất nhiều bao gồm PhantomJS/CasperJS, Selenium/WebDriver, Cucumber, Capybara, ... Tuy nhiên, có vẻ như tôi không có đầu - và một trong những yêu cầu tôi đã đưa ra là kiểm tra được thực hiện trực tiếp trong trình duyệt, bởi vì nó là bắt buộc để kiểm tra hành vi thực tế của trình duyệt trên bất kỳ một số hệ thống, bao gồm cả iPad.Thử nghiệm chức năng trong trình duyệt JavaScript

Một yêu cầu khác là các thử nghiệm ở mức cao và dễ viết trong JavaScript. (Tôi đã thử nghiệm một chút với Selenium/WebDriver, sử dụng đối tượng FirefoxDriver để gọi một cá thể trình duyệt; tuy nhiên, các tùy chọn ngôn ngữ là Java, Ruby, Python và C#.)

Phác thảo thô sơ về những gì tôi đang tìm kiếm:

  • Kiểm tra chức năng ứng dụng web trong trình duyệt thực tế. (Không có thử nghiệm không đầu.)
  • Có thể chạy thử nghiệm trên bất kỳ hệ điều hành nào, kể cả iPad.
  • Tuy nhiên, các kiểm tra sẽ chỉ chạy trên bản cài đặt Firefox. Các trình duyệt khác hiện không có liên quan.
  • Các thử nghiệm được viết bằng JavaScript.

Nếu không có nhiều công cụ để thực hiện nhiệm vụ cơ bản, suy luận của tôi có xu hướng là vì mọi người không dùng phương pháp này để kiểm tra - và nếu vậy thì chắc chắn là một lý do tốt.

Vì vậy, tôi đã bỏ qua các công cụ sẽ làm những gì tôi muốn hoặc thử nghiệm ứng dụng Web chức năng đơn giản là không được thực hiện trong trình duyệt thực tế sử dụng JavaScript vì một lý do nào đó?

Trả lời

1

Bạn đã thử Qunit chưa? http://qunitjs.com/

Tôi tin rằng nó đáp ứng tất cả các yêu cầu của bạn.

+0

QUnit? Tôi đã bỏ lỡ việc kiểm tra chức năng trong trình duyệt? Cảm ơn lời đề nghị, Pete! – Rick

+0

Chắc chắn là CÓ THỂ. Nó được thiết kế để kiểm tra đơn vị, nhưng bạn cũng có thể thực hiện thử nghiệm tích hợp và chức năng với nó. – Pete

+2

Nếu bạn đang xem qUnit để kiểm tra chức năng, bạn có thể kiểm tra FuncUnit, dựa trên qUnit, và được thiết kế đặc biệt để thử nghiệm chức năng! :) (http://funcunit.com/) – rinogo

0

Bạn có thể sử dụng các ràng buộc Javascript WebDriverJS chính thức để viết các bài kiểm tra của mình. https://code.google.com/p/selenium/wiki/WebDriverJs

Bạn sẽ cần phải khởi động máy chủ selen và phục vụ các lệnh kiểm tra từ xa đến trung tâm máy chủ, nhưng nó cho phép bạn thực hiện nhiều yêu cầu của mình.

Bạn cũng có thể sử dụng Appium http://appium.io/ để phân phát các thử nghiệm cho iPad.

2

Hãy thử DevExpress TestCafe có vẻ như nó đáp ứng tất cả các yêu cầu của bạn.

Dưới đây là một tóm tắt tính năng danh sách:

  • Zero Effort cài đặt: chỉ cần giải nén và chạy
  • Cross-nền tảng: có sẵn cho Windows, Mac và Linux
  • Không cài đặt trình duyệt plug-in cần
  • Tất cả các trình duyệt hiện đại chính đều được hỗ trợ
  • Giải pháp tất cả trong một: trình ghi tích hợp, API tích hợp liên tục, trình kiểm tra và trình ghi nhật ký.
  • Viết thử nghiệm trong javascript: không có trình bao bọc xung quanh DOM, chỉ cần sử dụng các phương thức DOM gốc hoặc jQuery tích hợp.
  • Ultra-simple API for actions
  • kiểm tra Run trên máy từ xa/thiết bị (bao gồm cả các thiết bị cảm ứng)
  • kiểm tra Run trong nhiều trình duyệt song song trên cùng một máy
  • Out of hộp để hỗ trợ Windows/HTTP Basic authenticaion
  • Tự động chờ tải trang/yêu cầu AJAX. Không cần viết những thứ như "waitForPageLoad()"
1

Intern trông khá tuyệt vời.

Nó bao gồm thử nghiệm chức năng mà bạn muốn.

Đối với phần còn lại của các tính năng kiểm tra: http://theintern.io/#compare

0

iMacros chạy trong trình duyệt và cung cấp thử nghiệm chức năng, hiệu suất và hồi quy có tùy chọn xuất mã sang Selenium WebDriver.