2013-04-19 24 views
7

Używam Jasmine do testowania jednostkowego, ale ostatnio szukałem narzędzia do przeprowadzania testów funkcjonalnych. Nazwy, o których często wspomniałem, to PhantomJS/CasperJS, Selenium/WebDriver, Cucumber, Capybara, ... Jednak wygląda na to, że są bezgłowe - a jednym z wymogów, które mi dano, jest to, że Testy są przeprowadzane bezpośrednio w przeglądarce, ponieważ konieczne jest sprawdzenie rzeczywistego zachowania przeglądarki na dowolnym z wielu systemów, w tym na iPadzie.Testowanie funkcjonalne JavaScript w przeglądarce

Kolejnym wymaganiem jest to, że testy są na wysokim poziomie i łatwe do napisania w JavaScript. (Eksperymentowałem trochę z Selenium/WebDriver, używając obiektu FirefoxDriver do wywołania instancji przeglądarki, jednak opcje językowe to Java, Ruby, Python i C#.)

Szorstki zarys tego, czego szukam:

  • Testowanie funkcjonalności aplikacji internetowej w rzeczywistej przeglądarce. (Bez testów bez głowy).
  • Testy można wykonywać na wielu różnych systemach operacyjnych, w tym na iPadzie.
  • Testy będą jednak wykonywane tylko w przypadku instalacji Firefoksa. Inne przeglądarki nie są obecnie odpowiednie.
  • Testy są napisane w JavaScript.

Jeśli nie ma już wielu narzędzi do wykonania czegoś, co wydaje się być podstawowym zadaniem, moja konkluzja wydaje się być taka, że ​​ludzie nie stosują takiego podejścia do testowania - a jeśli tak, to jest prawie z pewnością dobry powód.

Więc czy przeoczyłem narzędzia, które zrobią to, co chcę, czy też funkcjonalne testy aplikacji internetowej po prostu nie są wykonywane w rzeczywistej przeglądarce przy użyciu JavaScript z jakiegoś powodu?

Odpowiedz

1

Czy próbowałeś Qunit? http://qunitjs.com/

Uważam, że spełnia wszystkie Państwa wymagania.

+0

QUnit? Czy tęskniłem za tym, że wykonuje testy funkcjonalne w przeglądarce? Dzięki za sugestię, Pete! – Rick

+0

Z pewnością MOŻE. Został zaprojektowany do testowania jednostkowego, ale można także przeprowadzić test integracji i funkcjonalny. – Pete

+2

Jeśli szukasz funkcji qUnit do testowania funkcjonalnego, możesz sprawdzić FuncUnit, która bazuje na qUnit i zaprojektowana specjalnie do testowania funkcjonalnego! :) (http://funcunit.com/) – rinogo

0

Możesz użyć oficjalnych powiązań JavaScript WebDriverJS do napisania testów. https://code.google.com/p/selenium/wiki/WebDriverJs

Konieczne będzie uruchomienie serwera selenu i udostępnienie komend testowych zdalnie do koncentratora serwera, ale pozwala to na spełnienie wielu wymagań.

Możesz również użyć Appium http://appium.io/, aby przesłać testy do iPada.

2

Spróbuj DevExpress TestCafe wydaje się, że spełnia wszystkie twoje wymagania.

Oto krótka cecha-lista:

  • Zero setup wysiłek: wystarczy rozpakować i uruchomić
  • wieloplatformowy: dostępne dla systemów Windows, Mac i Linux
  • Nie konfiguracja przeglądarek wtyczek wymagane
  • Wszystkie główne nowoczesne przeglądarki są obsługiwane.
  • Kompleksowe rozwiązanie: wbudowany rejestrator, ciągła integracja interfejsu API, tester i rejestrator.
  • Testy zapisu w javascript: bez wrapperów wokół DOM, wystarczy użyć natywnych metod DOM lub wbudowanego jQuery.
  • Ultra-simple API for actions
  • testy uruchamiane na zdalnych maszyn/urządzeń (w tym urządzeń dotykowych)
  • testy wykonywane w wielu przeglądarkach równolegle na tej samej maszynie
  • odchodzący wsparcia Box for Windows/authenticaion HTTP podstawowe
  • Automatyczne oczekiwanie na pageloads/zapytania AJAX. Nie trzeba pisać takich rzeczy jak "waitForPageLoad()"
0

iMacros działa w przeglądarce i zapewnia testy funkcjonalne, wydajności i regresyjne z opcją eksportu kodu do Seleni WebDriver.

Powiązane problemy