Интеграционное тестирование для веб-приложения

Я хочу выполнить полное интеграционное тестирование для веб-приложения. Я хочу проверить многие вещи, такие как AJAX, позиционирование и наличие определенных фраз и HTML-элементов через несколько браузеров. Я ищу инструмент для такого автоматизированного тестирования.

с другой стороны, это мой первый раз, используя интеграционное тестирование. Существуют ли какие-либо конкретные рекомендации при проведении такого тестирования? Любой учебник, а?

(как Примечание: мой бэкэнд-код выполнен использование Perl, Python и Django.)

спасибо!

9 ответов


Если вам нужно выполнить полное тестирование, включая использование функций браузера, таких как AJAX, я бы рекомендовал селен. Selenium запускает браузер и управляет им для запуска тестов.

Он поддерживает все основные платформы и браузеры. Сама Селена реализуется на Java, но это не проблема, если он используется для тестирования веб-приложения через пользовательский интерфейс.

тесты Selenium-это последовательность команд в HTML таблица, поддерживаемые команды находятся в well документирована. Существует также IDE реализован как плагин Firefox, который можно использовать для записи и запуска тестов. Однако тестовые сценарии, созданные в среде IDE, могут использоваться для тестирования любых поддерживаемых браузеров.


Selenium - это хороший способ пойти. Для его использования с Perl используйте Test::WWW::Selenium модуль CPAN.

здесь пример из своего стручка:

use WWW::Selenium;

my $sel = WWW::Selenium->new( host => "localhost", 
                              port => 4444, 
                              browser => "*iexplore", 
                              browser_url => "http://www.google.com",
                            );

$sel->start;
$sel->open("http://www.google.com");
$sel->type("q", "hello world");
$sel->click("btnG");
$sel->wait_for_page_to_load(5000);
print $sel->get_title;
$sel->stop;

и вот некоторые дополнительные ссылки, которые могут быть полезными:

/ I3az/


на в этой статье, Noah Gift делает хорошую работу, представляя три основные альтернативы для тестирования интеграции веб-приложений: ветряная мельница, селен и Твил. Twill не делает Javascript, поэтому селен и ветряная мельница остаются вашими основными возможностями; подарки показывают достаточно о том, что означает использование каждого из них, поэтому вы можете выбрать.

одна вещь подарок не упоминает, что селен гораздо более популярен - это не очевидно, если вы просто веб-поиск каждого из терминов ветряная мельница и селен, но это потому, что каждый получает (разное количество;-) ложных попаданий. [windmill javascript] дает 325k хитов, [selenium javascript] дает 1.2 M хитов, и это соотношение является более репрезентативным. Во всяком случае, дело в том, что, если вы найдете их одинаково легкими и достаточно мощными для ваших нужд, так что вам трудно выбрать один, то выбор Селена (т. е. идти с толпой) может иметь преимущества (больше экспертов вокруг, например, на SO, чтобы ответить на вопросы; -) wrt выбор несколько меньше популярная альтернатива.


вы также можете управлять селеном с помощью привязки python Selenium-RC. Например:

from selenium import selenium
selenium = selenium("localhost", 4444, "*firefox",
            "http://www.google.com/")
selenium.start()
selenium.open("/") # open google.com
selenium.type("q", "selenium rc")
selenium.click("btnG")
selenium.wait_for_page_to_load("30000")
selenium.failUnless(selenium.is_text_present("Results * for selenium rc"))
selenium.stop()

селен - это очень хороший инструмент для автоматизации тестирования в различных браузерах.

поскольку вы упомянули Ruby в своих тегах, я также рекомендую Webrat что является хорошим решением для тестирования в браузере в Ruby.


вот еще один вариант, все написано в Python и кросс-браузерах для запуска и записи тестов:Мельница


Я бы также рекомендовал селен. Он получил действительно хороший плагин для Firefox, который вы можете использовать для создания интеграционных тестов.


TestPlan является отличным инструментом для веб-тестирования общего назначения. Он обеспечивает как бэкэнд без дисплея, так и селен. Бэкэнд Selenium должен заботиться о тестировании во всех популярных браузерах. Она также имеет свой собственный язык сценариев, который позволяет быстро писать и тестировать, хотя Java также может быть использован.

например, это переходит на страницу и отправляет форму поиска и проверяет, что он нашел правильный результат.

GotoURL http://myapp.com/

SubmitForm with
  %Params:search% some term
end

Check //div[@id='results'][contains(text(),'some term']

еще один отличный инструмент для тестирования браузера, который построен как библиотека Ruby и использует Ruby для сценариев -Watir. Существует также плагин firefox для watir так же, как селен называется
Firewatir размещен на Google code