Статьи

Тестирование сайта с TestGen4Web и Firefox

Итак, вернемся к следующему раунду. В то время как «вдали», дальнейшие волосы были потеряны и не смогли найти полезную работу в качестве лесника. Между тем, номер 2 ребенка в пути в декабре. Уже достаточно.

Наткнулся на TestGen4Web сегодня; расширение Firefox (требуется 1,5 бета ) для автоматизации тестирования веб-приложений, разработанное компанией Spikesource , которая делает себе имя путем тестирования приложений с открытым исходным кодом.

Помимо гладкой UML-диаграммы , в Firefox добавлена ​​панель инструментов, позволяющая записывать и воспроизводить «клики», которые вы делаете во время серфинга. Как только вы закончите запись, вы можете сохранить шаги в виде XML-файла (формат, специфичный для TestGen4Web) для повторного запуска.

И повторный запуск не ограничивается только расширением Firefox. Вторая половина этого проекта представляет собой генератор кода, который анализирует сохраненный XML и генерирует код для выполнения с использованием HTTPUnit (Java), Selenium (больше Java) или SimpleTest (PHP). Это означает, что, например, легко перезапускать тесты ежедневно через cron .

Если вы сейчас озадачены, некоторое время назад Маркус написал введение в возможности SimpleTest «Веб-тестирование»: кодирование поля входа в систему не должно повредить — «Как автоматизированные веб-тесты могут ускорить разработку». Более подробно можно найти в документации .

Рассматривая XML-формат TestGen4Web, он, похоже, способен охватить большинство вещей, связанных с «GET» и «POST» (например, нажатие на ссылки, заполнение и отправка форм), а также возможность проверить, соответствует ли ответ на запрос ожиданиям. Например, вытащить содержимое узла с выражением XPath и убедиться, что оно соответствует значениям, записанным в «записи».

Конечно, полезно уменьшить усилия по написанию веб-тестов SimpleTest. В то же время, я уже рассматривал подобные инструменты, такие как twill и maxq. Имейте в виду , что вы можете сделать очень многое, только если вы не запускаете тесты в реальном веб-браузере.

Есть «простая» ситуация, которую я хочу проверить, которая выглядит примерно так:

  1. Пользователю показывается список «предметов»
  2. Пользователь нажимает на ссылку и получает всплывающее окно, предоставляющее дополнительную информацию об одном «элементе» и форме для «подробного выбора», форма, содержащая значительный Javascript на стороне клиента
  3. При отправке формы всплывающее окно закрывается, а исходное окно обновляется для отображения подробного выбора.

Хотя здесь можно протестировать отдельные «единицы» запросов и ответов, с SimpleTest и аналогичными, я не вижу хорошего способа проверить всплывающее окно или Javascript, содержащийся во всплывающем окне, — это означает, что на самом деле нет хорошего способ имитации полной пользовательской «транзакции» и проверки ее работоспособности.

Потенциально это может решить TestGen4Web, учитывая его близость с браузером (см. Этот вопрос ), но вы теряете возможность «перевода». Тем не менее, HTTPUnit с помощью Rhino , похоже, имеет некоторую поддержку — я не пробовал HTTPUnit, поэтому не знаю, насколько хорошо это работает — учитывая удовольствие, которое мы получаем от совместимости с браузерами, я скептически отношусь.

Каким-то образом что-то основанное на wxMozilla или Internet Explorer / COM / Python кажется более убедительным — это настоящий браузер, но все же исполняемый из командной строки. Конечно, обратная сторона реального решения этой проблемы — спамерам это понравится…