Запуск HP ALM-тестов используя Jenkins

9c8611c1d3b04040a836b1b0a0f2e32f.jpg В современном IT-мире очень тяжело себе представить проекты, которые бы не использовали Continues Integration сервера для автоматической сборки и запуска тестов. А что если мы используем HP Application Lifecycle Management? Как быть в таком случае? Как нам, например, запустить тесты из Jenkins? Люди не знакомые с этим продуктом, с первого взгляда на него могут прийти к выводу, что у HP ALM отсутствует возможность интеграции с CI серверами.На самом деле это не так. Интеграция с CI-серверами для запуска HP ALM-тестов есть. Для этого достаточно установить HP Application Automation Tools plug-in для Jenkins.На текущий момент данный плагин может работать со следующими HP продуктами:

HP Unified Functional Testing 11.5x and 12.0x HP Service Test 11.20 and 11.50 HP LoadRunner 11.52 and 12.0x HP Performance Center 12.xx HP QuickTest Professional 11.00 HP Application Lifecycle Management 11.00, 11.52, and 12.xx HP ALM Lab Management 11.50, 11.52, and 12.xx Установка плагинаЧто бы установить плагин сначала необходимо скачать последнюю версию. А после чего зайти в Manage Jenkins → Manage Plugins и установить плагин из скаченного файла. После завершения установки можно приступить к настройке.70185d788a0802d91b893a747032d2dd.jpg

e199beabfc02b62f3c4dd48fd9fc240f.jpg

Настройка плагина Для настройки заходим в Manage Jenkins → Configure System.6aa8a45d7dede668567a650af3678e9d.jpg

Ищем там Application Lifecycle Management секцию и нажимаем кнопку Add ALM Server. Вводим необходимый алиас для сервера, который будет использоваться Jenkins для идентификации ALM сервера, а так же URL этого сервера.

dbb247c13a3deb68154bf4caab154570.jpg

Конфигурация Jenkins jobs После того как мы проделали все предварительные работы, можем приступить к конфигурации Jenkins jobs для непосредственного запуска автоматизированных тестов. Для примера рассмотрим как конфигурировать job для запуска обычных тест сетов (так называемый Client Side Execution) и для выполнения функциональных тест сетов (Server Side Execution) используя ALM Lab Management.Сконфигурируем job для выполнения обычного тест сета. Для этого в новом созданном Jenkins job добавим build step «Execute HP functional test from HP ALM».

0c4fad116c1d06da193442a7bffdc0f1.jpg

После того как мы его выбрали нужно сконфигурировать и заполнить все необходимые поля, такие как:

на каком ALM сервере запустить тесты логин и пароль пользователя от которого будут запущены тесты с какого домена и проекта и т.п. 4778854cb12bb80d1976fc9625531c7d.jpg

Я бы хотел обратить внимание на поле Test sets, потому что не сразу понятно, какие значение должны быть внесены. Для того что бы указать какой тест сет или тест сеты будут выполнятся необходимо открыть ALM и зайти в проект, из которого будут запускаться тесты. Перейдя в модуль «Test Lab» ищем нужные нам тест сеты и запоминаем путь к ним от Root папки.  

Например, мы хотим найти пути к следующим тест сетам «Mercury Tours Sanity» и «Mercury Tours UI». Для этого достаточно посмотреть на дерево папок и внести эту иерархию в Jenkins job, используя »\» как разделитель.

d5544543cbe76b4446be546089a7c3fa.jpg

4e278b41ec7de74814cf72599bc8f1a8.jpg

Так же хочется упомянуть возможность указать, где запустить данный тест сеты, используя опцию «Run mode».Данная опция позволяет выбрать одно из 3х мест: на локальной машине, на заранее заданной в параметрах тест сетов машине (-ах), или же на конкретной машине, которая будет передана как параметр Jenkins job.   На этом вся необходимая настройка запуска обычных тест сетов заканчивается. Перейдем к настройке запуска через Lab Management (функиональных тест сетов).

HP ALM Lab Management позволяет управлять ресурсами, хостами и таймслотами, а так же всем, что необходимо для запуска автоматизированных тестов (как функциональных так и тестов на производительность).

Процесс настройки данного build step очень схож с предыдущим, за исключение некоторых особенностей. Например, мы передаем не путь к тест сету, а именно ID, что позволяет жестко не привязыватся к месту, где расположен этот тест сет. А так же мы должны передать время, на которое резервируем таймслот в АЛМ (по сути это резервирование необходимых ресурсов, хостов и всего, что необходимо для выполнения этого функционального тест сета).

Где же взять ID функционального тест сета? Ответ очевиден, в ALM — Test Lab module.

eacd6be456aa16c72b73af802a017a3d.jpg

Заполнив необходимые данные получим примерно следующею картинку:

0f5b8a0cb1e39a7909125f1895ba028d.jpg

Собственно с конфигурацией это все. Давайте посмотрим, какой консольный лог мы получим в случае запуска (для примера возьмём последний сконфигурированный тест сет):

061b76e5875c7331fd64c22769d397cf.jpg

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

Как мы видим по логу тест сет еще бежит. Давайте проверим в HP ALM что он действительно запустился. Открываем HP ALM и переходим в Testslot модуль. Там мы видим, что создался таймслот под нужды функционального тест сета:

507bd01001b2d392b63c865ccd8fe16b.jpg

Послесловие В данной статье мы рассмотрели, как настроить и запустить 2 типа тест сетов. И как мы видим запускать HP ALM тесты/тест сеты используя Jenkins легко и просто. Хотелось бы отметить, что у HP Application Automation Tools плагина открытый исходный код, и каждый желающий может внести свою лепту в его развитие.Что бы получить больше информации об этом плагине и его использовании, например с тестами на производительность или UFT/QTP тестами можно перейти на официальную страницу.

© Habrahabr.ru