Интеграционное тестирование для веб-приложения - PullRequest
8 голосов
/ 17 ноября 2009

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

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

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

Спасибо!

Ответы [ 9 ]

11 голосов
/ 17 ноября 2009

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

Вот один пример из пакета:

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 /

11 голосов
/ 17 ноября 2009

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

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

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

6 голосов
/ 17 ноября 2009

В этой статье Ноа Гифт отлично работает, представляя три основных варианта тестирования интеграции веб-приложений: Windmill, Selenium и Twill. Twill не поддерживает Javascript, поэтому Selenium и Windmill остаются вашими основными возможностями; Подарки показывают достаточно о том, что означает использование каждого из них, так что вы можете выбрать.

Одна вещь, которую Гифт не упоминает, это то, что Selenium гораздо более популярен - это не очевидно, если вы просто просматриваете в Интернете каждое из терминов мельница и селен, но это потому, что каждый получает (различное количество ;-) ложных попаданий. [windmill javascript] дает 325 тыс. обращений, [selenium javascript] дает 1,2 млн. обращений, и это соотношение является более представительным. В любом случае, дело в том, что если вы найдете их обоих одинаково легкими и достаточно мощными для своих нужд, так что вам будет сложно выбрать один из них, то выбор селена (т. Е. Движение с толпой) может иметь преимущества (больше экспертов вокруг, например, на SO, чтобы отвечать на вопросы ;-) не выбрав несколько менее популярную альтернативу.

4 голосов
/ 17 ноября 2009

Вы также можете контролировать селен, используя привязку 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()
2 голосов
/ 17 ноября 2009

Вот еще один вариант, все написанные на Python и кросс-браузерах для запуска и записи тестов: Windmill

2 голосов
/ 17 ноября 2009

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

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

1 голос
/ 11 декабря 2009

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

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

GotoURL http://myapp.com/

SubmitForm with
  %Params:search% some term
end

Check //div[@id='results'][contains(text(),'some term']
1 голос
/ 17 ноября 2009

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

0 голосов
/ 17 ноября 2009

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

...