SOAPUI: как повторно использовать часть XML - PullRequest
1 голос
/ 13 июля 2020

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

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.spv.se/forsakring/iap/flyttratt/granssnitt/InitieraTestscenario/1.0/" xmlns:ns1="http://schemas.spv.se/forsakring/iap/flyttratt/arkitekturella/1.0/">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:InitieraTestscenario>
         <!--Optional:-->
         <ns:Forsakringar>
            <!--Zero or more repetitions:-->
            <ns:Forsakringsinformation>
               <!--Optional:-->
               <ns:Forsakringsnummer>?</ns:Forsakringsnummer>
            </ns:Forsakringsinformation>
         </ns:Forsakringar>
         <!--Optional:-->
         <ns:Personnummer>?</ns:Personnummer>
         <!--Optional:-->
         <ns:TestscenarioTyp>?</ns:TestscenarioTyp>
         <!--Optional:-->
         <ns:Header version="0.1">
            <!--Optional:-->
            <ns1:SkickatFran>?</ns1:SkickatFran>
            <ns1:SkickatFranBolagsID>?</ns1:SkickatFranBolagsID>
            <!--Optional:-->
            <ns1:SkickatTill>?</ns1:SkickatTill>
            <ns1:SkickatTillBolagsID>?</ns1:SkickatTillBolagsID>
            <ns1:TimeStamp>?</ns1:TimeStamp>
            <!--Optional:-->
            <ns1:Process>?</ns1:Process>
            <ns1:PensionsPlan>?</ns1:PensionsPlan>
            <ns1:Produktion>?</ns1:Produktion>
         </ns:Header>
      </ns:InitieraTestscenario>
   </soapenv:Body>
</soapenv:Envelope>

1 Ответ

1 голос
/ 13 июля 2020

Используйте расширение свойства . Поместите повторно используемый контент XML в свойство и включите его все, или используйте XPath для выбора узлов, которые вы хотите включить.

SoapUI предоставляет общий синтаксис для динамической вставки (" развернуть ") значения свойств во время обработки. Синтаксис следующий:

${[scope]propertyName[#xpath-expression]}

, где область действия может быть одним из следующих буквальных значений:

  • #Project# - ссылается на свойство Project (ссылочные свойства в конкретном проекте SoapUI)
  • #TestSuite# - ссылается на свойство TestSuite в содержащем TestSuite - #TestCase# - ссылается на свойство TestCase в содержащем TestCase
  • #MockService# - ссылается на свойство MockService в содержащем MockService
  • #Global# - ссылается на глобальное свойство. Находится в File> Preferences> Global Properties tab. Ссылка на свойства во всех проектах
  • #System# - ссылка на системное свойство. Находится в Справке> Свойства системы.
  • #Env# - ссылается на переменную среды
  • [TestStep name]# - ссылается на свойство TestStep

Многие из областей, конечно, будут работать только в том случае, если они доступны, т.е. вы не можете использовать область #MockService# в сценарии TestCase, поскольку нет MockService для доступа.

Если область действия не указана, свойство разрешается следующим образом:

  1. Проверить текущий контекст (например, TestRunContext) для свойства с совпадающим именем
  2. Проверить соответствие глобального свойства
  3. Проверить соответствие системного свойства

Если расширение свойства дополнительно включает выражение XPath, оно будет использоваться для выбора соответствующего значения из указанного свойства значение (которое должно содержать XML), например, в следующем примере можно "извлечь" значение автора из предыдущего ответа с помощью:

${Search Request#Response#//ns1:Item[1]/n1:Author[1]/text()}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...