#soapui
#soapui
Вопрос:
У меня интересное поведение по отношению к SoapUI 5.0.0.
У меня есть шаг HTTP-тестового запроса, настроенный для отправки текста / xml.
В запросе у меня есть расширение атрибутов для некоторых атрибутов в запросе, аналогичное:
FirstServiceDate="${=pluto.ServiceDate.adjustDate(modelItem, 1)}"
Обратите внимание, что ссылка вызывает функцию Java, которую я создал и поместил в файл jar в папке bin / ext моей установки.
Теперь, когда я отправляю запрос с помощью кнопки воспроизведения шагов запроса, замена атрибута происходит, как и ожидалось, и правильное значение атрибута помещается в содержимое необработанного сообщения и отправляется соответствующим образом.
Однако, когда я запускаю тестовый пример, который включает тестовый шаг, замена вместо этого помещает в вывод следующее сообщение об ошибке:
No signature of method: static pluto.ServiceDate.adjustDate() is applicable
Это будет указывать на то, что при выполнении тестового шага он больше не может найти / использовать рассматриваемый класс Java.
Является ли это преднамеренным ограничением версии, отличной от pro, в отношении замены запроса или мне нужно сделать что-то еще, чтобы класс был найден при запуске тестового примера?
РЕДАКТИРОВАТЬ: только что протестировано и с версией PRO. Это ограничение / ошибка все еще присутствует, если мне не нужно найти файл jar где-то еще.
Комментарии:
1. Попробуйте поместить свой файл .jar также в
$SOAPUI_HOME/lib
. Некоторое время назад в SoapUI была ошибка, которая, все еще , возможно, не была исправлена.2. @SiKing — спасибо за ответ. К сожалению, это не работает. Похоже, что класс TestCaseRunner должен настроить свой собственный classloader, который ограничивает то, что загружается и доступно в версии, отличной от pro.
3. Это должно работать и в версии, отличной от Pro!
4. Кажется, в версии 5.0.0 это не работает, не для Pro и не для pro-версий.
5. Если у вас есть лицензия a -Pro, вы можете представить это как ошибку. soapui.org/Support/support-overview-place.html
Ответ №1:
Подсказка заключается в формулировке ошибки
No signature of method .... is applicable
SoapUI фактически находит библиотеку, однако тип объекта, который передается в качестве ModelItem, отличается в зависимости от того, выполняется ли он из TestStep или из TestCase.
При изменении типа ModelItem на AbstractModelItem код затем работает.
Имейте в виду, что разные механизмы предоставляют разные классы ModelItem.