SoapUI:是否可以从SOAP消息中的元素自动生成值?

时间:2010-09-16 08:22:56

标签: xml random guid soapui

使用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 的唯一ID,我想知道SoapUI是否提供自动生成随机GUID的功能?

3 个答案:

答案 0 :(得分:74)

这将生成全局唯一ID:

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

答案 1 :(得分:11)

而不是随机ID,我建议使用时间戳到毫秒,因为数字永远不会重复。

我自己没有这样做,但看起来你调用了一个字符串函数:

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/

答案 2 :(得分:7)

我刚刚使用下面的代码在我的SOAPUI请求中生成随机数字,它没有任何问题。这将生成一个10位数的随机数。

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

如果您想更改位数,只需在randomNumeric()方法中更改所需的位数。