четверг, 19 апреля 2012 г.

Автоматизированное тестирование композитов в Oracle SOA Suite 11g

Рассмотрим автоматизированное тестирование (Unit- или модульное тестирование, подробнее здесь) на примере простейшего композита с BPEL-процессом, который вызывает другой HelloWorld-композит (руководство по созданию здесь).

Последовательность шагов:
  1. Создадим композит (например TestingProject) с BPEL-процессом (например TestBPELProcess), который на входе принимает строку, вызывает HelloWorld-композит и возвращает ответ от вызываемого композита:
  2. Создадим новый набор тестов (TestSuite):
  3. Создадим первый тест (например Test1):
  4. Откроется дизайнер теста:
  5. Проинициализируем входную переменную:
  6. Сгенерируем входную переменную нажав "Generate":
  7. Теперь проинициализируем выходную переменную:
  8. Добавить новое утверждение (Assert), выбрать тип "Assert Output", сгенерировать выходную переменную и изменить её значение:
  9. Получился простейший тест - вводим входную и выходную переменную, если значения совпадут, то тест пройден успешно, если нет, то тест не пройден.
  10. Теперь сделаем простейший тест с использованием эмуляции вызова сервиса (т.е. вместо реального вызова сервиса будет возвращаться определённое значение). Для этого создадим новый тест (например Test2):
  11. Повторить шаги 5-8 для второго теста. Получится следующее:
  12. Далее создадим эмуляцию для сервиса HelloWorldProcess. Для этого:
  13. Перейти в закладку "Emulates" и создать эмуляцию:
  14. Сгенерируем ответ сервиса:
  15. Второй тест получился таким:
  16. Развернём композит на сервере Oracle SOA Suite 11g.
  17. Зайти в Oracle Enterprise Manager Fusion Middleware Control, выбрать наш композит и перейти в закладку "Unit Tests":
  18. Выбрать тесты для запуска и нажать "Execute":
  19. Ввести имя запуска теста:
  20. После окончания выполнения тестов можно увидеть результат выполнения каждого теста:
  21. А так же увидеть детали сравнения на основе которых определяются результаты теста:


Комментариев нет:

Отправить комментарий