2010-09-16 22 views
19

Mit SoapUI ist es möglich, Soap XML-Nachricht an einen WCF-Dienst zu senden. Ich habe die folgende SOAP-Nachricht:SoapUI: Ist es möglich, den Wert von einem Element in einer SOAP-Nachricht automatisch zu generieren?

<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> 

Da der WCF-Dienst für meine eine eindeutige ID erwartet: id, ich möchte wissen, ob SoapUI Funktionalität bereitstellt, um automatisch eine zufällige GUID zu generieren?

Antwort

10

Eher als eine zufällige ID, würde ich vorschlagen, die Zeiten Stempel bis auf die Millisekunde, wie die Zahl wird nie dupliziert werden.

Ich habe das nicht selbst getan, aber es sieht aus wie Sie eine Zeichenfolge-Funktion aufrufen:

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

Danke für den Tipp! Ich habe folgendes verwendet: $ {= neues Datum(). GetTime()}

+0

Siehe auch diese Seite: http://www.soapui.org/Scripting-Properties/working-with-properties.html –

59

Dies wird eine global eindeutige ID generieren:

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

Danke für die Antwort. –

6

I habe gerade den untenstehenden Code benutzt, um eine zufällige Zahl in meiner SOAPUI-Anfrage zu generieren, und es hat ohne Probleme funktioniert. Dies erzeugt eine zufällige Anzahl von 10 Ziffern.

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

Wenn Sie möchten, Anzahl der Stellen ändern, ändern Sie einfach die gewünschte Anzahl von Stellen in randomNumeric() Methode.

Verwandte Themen