2010-09-16 12 views
19

Con SoapUI è possibile inviare un messaggio XML sapone a un servizio WCF. Sono il seguente messaggio SOAP:SoapUI: è possibile generare automaticamente il valore da un elemento in un messaggio 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> 

Poiché il servizio WCF si aspetta un ID univoco per mia: id, vorrei sapere se SoapUI fornisce funzionalità per generare automaticamente un GUID casuale?

risposta

10

Piuttosto che un ID casuale, suggerirei di utilizzare il timestamp fino al millisecondo, poiché il numero non verrà mai duplicato.

Non ho fatto questo io stesso, ma sembra che si chiama una funzione di stringa:

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/

+1

Grazie per il suggerimento! Ho usato quanto segue: $ {= new Date(). GetTime()}

+0

Vedi anche questa pagina: http://www.soapui.org/Scripting-Properties/working-with-properties.html –

59

Questo genererà un ID univoco globale:

${=java.util.UUID.randomUUID()} 
+1

Grazie per la risposta. –

6

I ho appena usato il codice qui sotto per generare un numero casuale nella mia richiesta SOAPUI e ha funzionato senza alcun problema. Questo genererà un numero casuale di 10 cifre.

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

Se si desidera modificare il numero di cifre, basta cambiare il numero desiderato di cifre in randomNumeric() metodo.

Problemi correlati