Настройка Rational Functional Tester (RFT) для работы в Хадсон / Дженкинс

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

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

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

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

4 ответа

Решение

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

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

Мы не используем InstallAnywhere или Rational Functional Tester, но на их месте есть похожие механизмы. Ключ, который мы нашли, чтобы заставить все это петь в Хадсоне, был в состоянии выполнить наши различные шаги из командной строки. 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

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

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

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

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

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

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

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

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

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

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

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

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