SoapUI: возможно ли автоматически сгенерировать значение из элемента в сообщении SOAP? - PullRequest
21 голосов
/ 16 сентября 2010

С SoapUI возможно отправить сообщение Soap XML службе WCF.У меня следующее сообщение SOAP:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:my="http://myserviceprovider">
   <soap:Header/>
   <soap:Body>
      <my:ProcessOrder>
         <my:Orders>
            <my:Order>
               <my:id>randomid_1234567890</my:id>
               <my:data>ABC</my:data>
            </my:Order>
         </my:Orders>
      </my:ProcessOrder>
   </soap:Body>
</soap:Envelope>

Поскольку служба WCF ожидает уникальный идентификатор для my: id , я хотел бы знать, предоставляет ли SoapUI функциональность для автоматической генерации случайногоGUID

Ответы [ 3 ]

75 голосов
/ 27 июля 2011

Это сгенерирует глобально уникальный идентификатор:

${=java.util.UUID.randomUUID()}
11 голосов
/ 16 сентября 2010

Вместо случайного идентификатора я бы предложил использовать отметку времени вплоть до миллисекунды, поскольку число никогда не будет дублироваться.

Я сам этого не делал, но похоже, что вы вызываете строковую функцию:

01  ...
02  ...
03   <!-- text within dateEffectiveFrom tag is replaced with a date 10 days from today in yyyy-MM-dd format -->
04   <dateEffectiveFrom>${=  String.format('%tF', new Date() + 10) }</dateEffectiveFrom>
05   
06  <!-- TestSuite property "date" is defined as "${=  String.format('%tF', new Date() + 10) }" -->
07  <!-- Another example where dynamic date is defined as TestSuite property -->
08  <!-- and then SOAP Request can refer to this TestSuite property as shown below -->
09   <dateEffectiveFrom>${#TestSuite#date}</dateEffectiveFrom>
10  ...
11  ...

http://onebyteatatime.wordpress.com/2009/04/18/soapui-tips-n-tricks-part-2/

7 голосов
/ 18 февраля 2016

Я только что использовал приведенный ниже код для генерации случайного числа в моем запросе SOAPUI, и он работал без проблем. Это сгенерирует случайное число из 10 цифр.

<val:Id UniqueID="${=org.apache.commons.lang.RandomStringUtils.randomNumeric(10)}"/>

Если вы хотите изменить количество цифр, просто измените нужное количество цифр в методе randomNumeric().

...