Статьи

Использование BPELUnit для тестирования процессов в Riftsaw

BPELUnit — это среда тестирования, предназначенная для тестирования процессов BPEL на основе запроса-ответа. Он поставляется с плагином для Eclipse для создания и запуска наборов тестов BPEL, а также возможностью запуска автоматических тестов с помощью задач Ant. Это позволяет включать тесты BPELunit в интеграционные тесты Riftsaw. В этой статье я постараюсь дать вам несколько советов и инструкций о том, как протестировать процесс, развернутый на Riftsaw, с помощью плагина BPELUnit Eclipse.

подготовка



Если вы начинаете с нуля, вам понадобится:

  1. Распакуйте JBossAS, JBossESB и Riftsaw в соответствующие каталоги.
  2. Установите переменную среды JBOSS_HOME, чтобы она указывала на каталог JBossAS.
  3. Отредактируйте ESB_HOME / install / deploy.properties, чтобы изменить org.jboss.esb.server.home, чтобы он указывал на каталог JBOSS_HOME
  4. Отредактируйте RIFTSAW / install / deploy.properties, чтобы изменить домашние каталоги AS и ESB.
  5. Из ESB_HOME / install запустите «ant deploy» — это развернет ESB на сервере приложений.
  6. Из RIFTSAW / install запустите «ant deploy» — это развертывает Riftsaw на сервере приложений

  1. Запустите Eclipse и выберите каталог рабочей области.
  2. Перейдите по указанному выше URL-адресу и следуйте инструкциям по установке BPELUnit в Eclipse.

Осталось проверить, что Riftsaw был развернут, запустить сервер и развернуть пример проекта, который мы собираемся протестировать:
 
  1. В Eclipse выберите, чтобы добавить сервер, и выберите установку JBoss AS.
  2. Запустить сервер
  3. После запуска перейдите по адресу http: // localhost: 8080 / bpel-console.
  4. Если появится диалог входа в систему, Riftsaw был успешно установлен.
  5. Войдите с учетными данными «admin» / «password», вы увидите, что процессы не развернуты.
  6. Из каталога RIFTSAW / samples / quickstart / hello_world запустите «ant eploy».
  7. Обновите окно «Определения процессов». Должен появиться процесс Hello World.


Создание теста


Теперь, когда все готово, пришло время наконец-то провести тестирование. На веб-сайте BPELUnit есть учебник Hello World, который я настоятельно рекомендую пройти, так как следующий пример будет очень похожим. Единственная разница будет в том, что мы будем использовать пример Hello World, который мы только что развернули на сервере. С BPELUnit мы можем создать и запустить тест, который проверит, что образец работает правильно. Вот шаги для настройки этого проекта в Eclipse:

 

  1. Создайте новый проект в рабочей области, используя Файл -> Создать -> Прочее -> Общие -> Проект
  2. Назовите это «bpelunit_test»
  3. Скопируйте RIFTSAW / samples / quickstart / hello_world / bpelContent / HelloWorld.wsdl в каталог «bpelunit_test» в рабочей области Eclipse.
  4. Обновите проект, чтобы увидеть, что файл WSDL был добавлен
  5. Добавьте набор тестов в проект через Файл -> Создать -> Другие -> BPELUnit -> BPELUnit Test Suite

 

 

Набор тестов, который мы только что создали, представляет собой XML-файл, который определяет, какой процесс будет тестироваться и как. Функциональность процесса Hello World заключается в том, что он принимает строковый ввод, связывает его с «World» и отправляет обратно. Поэтому, если вход «HELLLO», выход должен быть «HELLO World». И это то, что мы собираемся проверить. Теперь заполните детали следующим образом:

 

  • Базовый URL: http: // localhost: 7777 / ws (префикс для фиктивного URL сервиса, пока неважный)
  • Название PUT: HelloWorld
  • Тип PUT: фиксированный развертыватель
  • WSDL: нажмите «Обзор» и выберите файл HelloWorld.wsdl.

Теперь сохраните (Ctrl + S). Измените представление в форме на «Источник» и убедитесь, что оно выглядит как приведенный ниже код. Если нет, вы можете изменить его, чтобы он сделал.

<?xml version="1.0" encoding="UTF-8"?>
<tes:testSuite xmlns:tes="http://www.bpelunit.org/schema/testSuite">
<tes:name>suite.bpts</tes:name>
<tes:baseURL>http://localhost:7777/ws</tes:baseURL>
<tes:deployment>
<tes:put name="HelloWorld" type="fixed">
<tes:wsdl>HelloWorld.wsdl</tes:wsdl>
</tes:put>
</tes:deployment>
<tes:testCases/>
</tes:testSuite>

 На самом деле так выглядит файл набора тестов. Теперь вернемся к представлению «Test Suite» и, наконец, добавим тестовый пример, который позволит нам проверить функциональность процесса. В разделе «Тестовые случаи и треки» нажмите «Добавить», заполните «SayHello» как имя и подтвердите. Создан тестовый пример SayHello, который вы можете увидеть в списке. Под этим тестовым примером понимается «клиентский» узел. Это представляет клиента-партнера, который вызовет процесс. Теперь мы укажем, какое сообщение будет отправлено и что мы ожидаем получить. Для этого выполните следующие действия:

 

  1. Выберите «клиентский» узел под тестовым примером SayHello.
  2. На панели «Активности» справа нажмите кнопку «Добавить».
  3. Выберите «Отправить / получить синхронно» — это самая основная операция запрос-ответ.
  4. Обратите внимание, что служба, порт и операция уже заполнены, поскольку существует только одна операция — «привет».
  5. Установите флажок «Введите XML литерал» и перейдите на вкладку «XML для отправки».

Мы сделали это, потому что хотим указать, какие данные будут отправлены процессу в формате XML. Теперь к появившимся окнам вставьте этот код:

<TestPart>HELLO</TestPart>

Это означает, что входная строка будет «HELLO». Теперь нажмите «Далее», чтобы мы могли указать, какой результат мы ожидаем. Давайте добавим условие для проверки, нажав на соответствующую кнопку. «Выражение» здесь — это выражение в формате XPath, которое выберет правильный XML-узел ответа, в нашем случае это исходящее сообщение. Заполните эти:

  • Выражение: // TestPart
  • Значение: «HELLO World» (включая апострофы)

Теперь нажмите «Готово» и сохраните набор тестов (Ctrl + S). Вернитесь к представлению «Исходный код» и проверьте созданный код. Это должно выглядеть так:

<?xml version="1.0" encoding="UTF-8"?>
<tes:testSuite xmlns:tes="http://www.bpelunit.org/schema/testSuite">
<tes:name>suite.bpts</tes:name>
<tes:baseURL>http://localhost:7777/ws</tes:baseURL>
<tes:deployment>
<tes:put name="HelloWorld" type="fixed">
<tes:wsdl>HelloWorld.wsdl</tes:wsdl>
</tes:put>
</tes:deployment>
<tes:testCases>
<tes:testCase name="SayHello" basedOn="" abstract="false" vary="false">
<tes:clientTrack>
<tes:sendReceive service="wsdl:HelloService" port="HelloPort" operation="hello" xmlns:wsdl="http://www.jboss.org/bpel/examples/wsdl">
<tes:send service="wsdl:HelloService" port="HelloPort" operation="hello" fault="false" delaySequence="">
<tes:data>
<TestPart>HELLO</TestPart>
</tes:data>
</tes:send>
<tes:receive service="wsdl:HelloService" port="HelloPort" operation="hello" fault="false">
<tes:condition>
<tes:expression>//TestPart</tes:expression>
<tes:value>'HELLO World'</tes:value>
</tes:condition>
</tes:receive>
</tes:sendReceive>
</tes:clientTrack>
</tes:testCase>
</tes:testCases>
</tes:testSuite>

 Вот и все, мы только что создали тестовый пример, который будет вызывать операцию «hello» со строкой «HELLO» в качестве входных данных, а затем он проверит, что возвращаемое значение равно «HELLO World». Сам процесс уже развернут, поэтому осталось только запустить этот тест на нем.

Запуск набора тестов


В окне Project Explorer щелкните правой кнопкой мыши файл «suite.bpts» и выберите «Запуск от имени» -> «BPELUnit TestSuite». Теперь должна появиться новая левая вкладка, которая покажет результаты теста. Если все работает правильно, столбцы будут заполнены зеленым цветом. Вы можете расширить узлы, чтобы увидеть сообщения SOAP, которые были отправлены и получены.

This tutorial presented how can be processes that are deployed on Riftsaw simply tested thanks to the BPELUnit framework. In the next blog post we will use the other way of using this tool – Ant build script. We are going to include BPELUnit testing into the present integration tests which will give us the opportunity to automate testing via this framework.