Как внедрить свойство в качестве строкового аргумента в soapUI

Недавно я начал использовать soapui для тестирования веб-сервисов и довольно новый. Мне было интересно, как вставить значение свойства в виде строки в запрос. Например, запрос выглядит следующим образом

<org:Customer org1:Description="customer" org1:DisplayName="google" 
org1:Name="google"/>

По сути, я хочу сделать что-то вроде этого,

<org:Customer org1:Description=${#Project#orgdesc}     
org1:DisplayName=${#Project#orgdisplayname}        
org1:Name=${#Project#orgdisplayname}/>

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

Изменить №1

Я думаю, что я не делаю правильную вещь ниже. Потому что в исходном запросе выше Description, DisplayName и Name являются атрибутами клиента, и я отправляю запрос, делая их ниже дочерними узлами. Это кажется в корне неверным. Тогда как мне внедрить значение свойств, которые я определил в атрибутах тега?

Попытка 1

  <org:Customer> 
         <arg0>
            <org1:Description>${#Project#orgdesc}</org1:Description>
            <org1:DisplayName>${#Project#orgdisplayname}</org1:DisplayName>
            <org1:Name>${#Project#orgname}</org1:Name>
         </arg0>
  </org:Customer>

Попытка 2

 <org:Customer> 
             <org1:Description>
              <arg0>${#Project#orgdesc}</arg0>
             </org1:Description> 
             <org1:DisplayName>
               <arg0>${#Project#orgdisplayname}</arg0>
             </org1:DisplayName>
             <org1:Name>
               <arg0>${#Project#orgname}</arg0>
             </org1:Name>
     </org:Customer>

person nilesh    schedule 12.07.2012    source источник


Ответы (1)


Я почти уверен, что у вас просто слишком много символов «#».

Я думаю, что вам нужен синтаксис «расширение свойства». Нравиться:

def postResp = context.expand('${PostObject#response}')

Это из скрипта groovy, но я думаю, что groovy применяется к шаблонам сообщений перед их отправкой, поэтому:

${Проект#имя_организации}

наверное это то, что вам нужно.

РЕДАКТИРОВАТЬ

В этом случае попробуйте установить переменную «самой низкой области действия» из groovy и использовать ее в своем сообщении. Сделайте что-нибудь вроде:

def city= context.expand( '${#Project#city}' )

context.setProperty("город", город)

Затем в XML поместите:

${город}

Вот часть XML-запроса:

  <data:address>
     <data:street>${street}</data:street>
     <data:city>${city}</data:city>
     <data:state>${state}</data:state>
     <data:zipCode>${zip}</data:zipCode>
     <data:country>${country}</data:country>
  </data:address>
person chrismead    schedule 13.07.2012
comment
Я думаю, что синтаксис, который у меня есть, верен для свойств уровня проекта, потому что def name = context.expand('${#Project#orgname}') возвращает мне имя организации, которое я определил - person nilesh; 13.07.2012
comment
спасибо за обновленный ответ. Я добавил отличный скрипт, как вы предложили, в качестве отличного шага в тестовом шаге. Затем я попробовал org1:Name=${org}, что, очевидно, не сработает, поскольку в запросе требуются кавычки. Я также попытался вставить результат отличного шага, например org1:Name=${getOrgName#result}, но это тоже не сработало. Можете ли вы дать мне пример запроса xml, который вы используете? - person nilesh; 16.07.2012
comment
Подобные вещи - главная причина для получения про-версии. - person Andy Morris; 17.07.2012