2013-04-19 2 views
7

Я использовал Jasmine для модульного тестирования, но в последнее время искал инструмент для выполнения функциональных тестов. Имена, которые я вижу, часто упоминаются в PhantomJS/CasperJS, Selenium/WebDriver, Cucumber, Capybara ... Однако мне кажется, что они безголовые - и одно из требований, которые мне даны, это то, что тесты выполняются непосредственно в браузере, потому что необходимо проверить фактическое поведение браузера на любом из нескольких систем, включая iPad.Функциональное тестирование JavaScript In-Browser

Другое требование состоит в том, чтобы тесты были на высоком уровне и легки для записи в JavaScript. (Я немного экспериментировал с Selenium/WebDriver, используя объект FirefoxDriver для вызова экземпляра браузера, однако языковыми параметрами были Java, Ruby, Python и C#.)

Грубая схема того, что я ищу:

  • Тестирование функциональности веб-приложения в реальном браузере. (Без тестирования без наушников.)
  • Тесты могут выполняться в любой из различных операционных систем, включая iPad.
  • Однако тесты будут выполняться только при установке Firefox. Другие браузеры в настоящее время не актуальны.
  • Тесты написаны на JavaScript.

Если у вас нет достаточного количества инструментов для выполнения того, что кажется основной задачей, мой вывод, как правило, состоит в том, что это потому, что люди не используют этот подход для тестирования - и если это так, то есть почти конечно, хорошая причина.

Так что я упустил из виду инструменты, которые будут делать то, что я хочу, или функциональное тестирование веб-приложений, которое просто не выполняется в реальном браузере с использованием JavaScript по какой-то причине?

ответ

1

Вы пробовали Qunit? http://qunitjs.com/

Я считаю, что он отвечает всем вашим требованиям.

+0

QUIIT? Мне не хватало того, что выполняет функциональное тестирование в браузере? Спасибо за предложение, Пит! – Rick

+0

Это, безусловно, МОЖЕТ. Он предназначен для модульного тестирования, но с ним также можно выполнить интеграцию и функциональное тестирование. – Pete

+2

Если вы ищете qUnit для функционального тестирования, вы можете проверить FuncUnit, который основан на qUnit, и разработан специально для функционального тестирования! :) (http://funcunit.com/) – rinogo

0

Вы можете использовать официальные привязки Javascript WebDriverJS для написания своих тестов. https://code.google.com/p/selenium/wiki/WebDriverJs

Вам нужно будет запустить сервер selenium и выполнить тестовые команды удаленно на серверный концентратор, но это позволит вам выполнить большинство ваших требований.

Вы также можете использовать Appium http://appium.io/ для тестирования тестов на iPad.

2

Попробуйте DevExpress TestCafe похоже, что он соответствует всем вашим требованиям.

Вот краткая характеристика-лист:

  • установка нуля усилий: просто распаковать и запустить
  • Кроссплатформенность: доступен для Windows, Mac и Linux
  • Нет настройки браузеров плагинов не требуется
  • Поддерживаются все основные современные браузеры
  • Решение «все в одном»: встроенный рекордер, непрерывная интеграция API, тестовый бегун и регистратор.
  • Напишите тесты в javascript: нет оберток вокруг DOM, просто используйте собственные методы DOM или встроенный jQuery.
  • Ultra-simple API for actions
  • запускать тесты на удаленных машинах/устройствах (в том числе сенсорных устройств)
  • запускать тесты в нескольких браузерах параллельно на одной и той же машине
  • из опорной коробки для Windows/HTTP-Basic authenticaion
  • Автоматическое ожидание pageloads/AJAX-запросов. Не нужно писать такие вещи, как «waitForPageLoad()»
1

Intern выглядит довольно устрашающе.

Он включает в себя функциональное тестирование, которое вы хотите.

Что касается остальных функций проверить: http://theintern.io/#compare

0

iMacros работает в браузере и обеспечивает функциональное тестирование производительности и регрессии с возможностью экспорта кода в Selenium WebDriver.