Вопрос

Я только что установил Hudson, и он работает прекрасно.Он собирает, запускает JUnit-тесты, а также анализ CheckStyle.

Следующим шагом для нас будет создание установки, ее установка, а затем запуск автоматических тестов фактической установки.Затем я хотел бы провалить сборку, если тесты не пройдут, или хотя бы каким-то образом опубликовать результаты.Я думаю, мы бы настроили так, чтобы часть запускалась периодически или запускалась вручную.

Мы используем InstallAnywhere для установки и IBM Rational Functional Tester для автоматизированных тестов.

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

Это было полезно?

Решение

Мы запустили довольно сложную распределенную сборку на Hudson. По сути, этот процесс выглядит следующим образом:

  1. Тестируйте на Windows.
  2. Протестируйте на OSX, запустите покрытие кода и отправьте результаты на сервер.
  3. Тестируйте на OSX Tiger.
  4. Пакет для OSX Leopard и отправка сборки на сервер.
  5. Пакет для Windows и отправка сборки на сервер.
  6. Обновите сайт продукта.

Мы не используем InstallAnywhere или Rational Functional Tester, но у них есть аналогичные механизмы.Ключом к тому, чтобы все это запомнилось в Hudson, была возможность выполнять различные шаги из командной строки.Maven и соответствующие плагины быстро справились с этой задачей.Поэтому я бы посоветовал, используя любой инструмент сборки, который вы используете (ant, maven,?), настроить их так, чтобы вы могли запускать свой рациональный функциональный тестер и устанавливать его в любом месте из командной строки, передавая простую цель в ваш инструмент сборки ( то естьтест mvn или сборка mvn: сборка).

После этого убедитесь, что на любой машине, на которой работает Hudson, установлено все необходимое (т.Rational Functional Tester) и настроен так, чтобы вы могли открыть командную строку, ввести цель и правильно выполнить тесты.

С этого момента подключить его в Hudson довольно просто — просто укажите цель при настройке сборки.

Другие советы

Справочник по командной строке для Rational Functional Tester:

http://publib.boulder.ibm.com/infocenter/rfthelp/v8r0m0/index.jsp?topic=/com.ibm.rational.test.ft.doc/topics/RobotJCommandLine.html

Пример команды для запуска теста:

java -classpath "C:\IBM\RFT\FunctionalTester\bin\rational_ft.jar" 
com.rational.test.ft.rational_ft -datastore \\My_project\AUser\RobotJProjects -user admin -project
\\My_project\AUser\TestManagerProjects\Test.rsp -build "Build 1" -logfolder "Default" -log  
"Al_SimpleClassicsA#1" -rt.log_format "TestManager" -rt.bring_up_logviewer true -playback 
basetests.SimpleClassicsA_01

Дополнительное примечание: вам необходимо правильно настроить Windows на компьютере с агентом, на котором будут выполняться тесты.Это не совет, специфичный для Hudson или RFT, а скорее для всех инструментов автоматизации графического пользовательского интерфейса в Windows.RFT потребуется интерактивная среда рабочего стола, чтобы можно было нажимать кнопки и т. д.Если у вас есть агент Hudson, работающий как служба Windows, рабочего стола не будет.См. следующее: Тесты Silverlight не работают, если не открыто соединение RDP

У меня есть несколько общих советов по этому поводу, потому что я сам еще не реализовал это.Я предполагаю, что вы хотите, чтобы Hudson автоматически запускал для вас сценарии RFT через процесс сборки или Hudson?Я тоже хочу внедрить нечто подобное в своей организации.

Мне пока не удалось реализовать это из-за организационных ограничений, но вот что я задумал/сделал на данный момент:

  1. Скачал просмотрщик процессов Windows, получил команду для запуска тестов.
  2. Сделал из него скрипт оболочки, выделил переменные и т. д.
  3. План на будущее состоит в том, чтобы настроить подчиненную машину Windows, на которой будут все инструменты, которые потребуются после запуска тестов, например.правильные версии браузеров, переменные среды и другие необходимые инструменты.
  4. Хадсон запускает процесс, который запускает созданные сценарии оболочки, который запускает все сценарии RFT и выполняет необходимые операции на подчиненной машине.

Я считаю, что лучший ответ — это то, что интеграция RFT с Hudson/Jenkins — бесполезное занятие.

Как это Часто задаваемые вопросы по IBM говорит, чтобы заставить RFT работать, вы должны:

  • войти в систему;
  • экран невозможно заблокировать;
  • если вы подключены удаленно, вы не сможете свернуть экран подключения.

Таким образом, вы не можете запустить Jenkins/Hudson как службу, что делает ее не очень полезной.Вы должны запустить его из своей зарегистрированной учетной записи.Если вы используете корпоративный компьютер (очень вероятно, если вы используете RFT), вам, вероятно, придется использовать взломать, чтобы предотвратить запуск заставки.Если экран заблокирован, ваши тесты всегда будут неудачными.

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

Jenkins/Hudson также даст вам некоторые преимущества, такие как интеграция тестов с вашим контролем версий, возможно, автоматический запуск тестов при совершении фиксации.Это также поможет отправлять электронные письма в случае неудачи тестов.

Но вам все равно придется интегрировать журналы RFT с каким-нибудь плагином JUnit, чтобы получить хороший отчет.Вам также понадобится сценарий для запуска тестов с использованием командной строки.

Я думаю, что использовать сервер непрерывной интеграции с RFT не стоит. Лучше просто запускайте тесты каждый день в планировщике задач Windows.Это более простое решение с меньшим количеством точек отказа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top