2010-09-16 26 views
19

Con SoapUI es posible enviar el mensaje Soap XML a un servicio WCF. He el siguiente mensaje SOAP:SoapUI: ¿es posible autogenerar el valor de un elemento en un mensaje 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> 

Debido a que el servicio WCF espera un identificador único para mi: Identificación del, me gustaría saber si SoapUI proporciona funcionalidad para generar automáticamente un GUID aleatorio?

Respuesta

10

En lugar de una identificación aleatoria, le sugiero que use la marca de tiempo hasta el milisegundo, ya que el número nunca se duplicará.

No he hecho esto por mí mismo, pero parece que se llama a una función de cadena:

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

¡Gracias por la sugerencia! he usado las siguientes: $ {= new Date()() GetTime.}

+0

Véase también esta página: http://www.soapui.org/Scripting-Properties/working-with-properties.html –

59

Esto generará un identificador único global:

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

Gracias por la respuesta. –

6

I acabo de utilizar el siguiente código para generar un número aleatorio en mi solicitud SOAPUI y funcionó sin ningún problema. Esto generará un número aleatorio de 10 dígitos.

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

Si desea cambiar el número de dígitos, sólo cambia el número deseado de dígitos en randomNumeric() método.

Cuestiones relacionadas