替换/更新groovy中的现有节点值

时间:2017-08-23 03:13:02

标签: groovy soapui

以下是我的示例xml。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">    <SOAP-ENV:Header>
      <MessageHeader xmlns:ns3="http://csi.cingular.com/CSI/Namespaces/Types/Public/CingularDataModel.xsd" xmlns:ns39="http://csi.cingular.com/CSI/Namespaces/Types/Public/MessageHeader.xsd">
         <ns39:TrackingMessageHeader>
            <ns3:infrastructureVersion>86</ns3:infrastructureVersion>
            <ns3:version>222</ns3:version>
            <ns3:messageId>146100035386400076</ns3:messageId>
            <ns3:originatorId>PEEPS</ns3:originatorId>
            <ns3:timeToLive>120000</ns3:timeToLive>
            <ns3:dateTimeStamp>2016-04-18T20:16:19.387Z</ns3:dateTimeStamp>
         </ns39:TrackingMessageHeader>
         <ns39:SecurityMessageHeader>
            <ns3:userName></ns3:userName>
            <ns3:userPassword></ns3:userPassword>
         </ns39:SecurityMessageHeader>
         <ns39:SequenceMessageHeader>
            <ns3:sequenceNumber>1</ns3:sequenceNumber>
            <ns3:totalInSequence>1</ns3:totalInSequence>
         </ns39:SequenceMessageHeader>
      </MessageHeader>    </SOAP-ENV:Header>    <SOAP-ENV:Body>
      <InquireEnterpriseOrderListRequest xmlns="http://csi.cingular.com/CSI/Namespaces/InquireEnterpriseOrderListRequest.xsd">
         <SelectionCriteria>
            <organizationId>214256542</organizationId>
         </SelectionCriteria>
      </InquireEnterpriseOrderListRequest>    </SOAP-ENV:Body> </SOAP-ENV:Envelope>

我想将“organizationId”此标记值替换为从文件读取的值,并在节点中更新值后使用testRunner.runTestStepByName("InquireEnterpriseOrderList")触发它。

可以帮助理解如何使用新值更新/替换节点,并重新触发API以捕获许多输入的结果。

1 个答案:

答案 0 :(得分:0)

在这里,你需要做什么:

  • 读取文件提取所需的值并将其存储在测试用例级别的自定义属性中。假设您正在使用groovy脚本测试步骤来执行此操作。因此,请添加以下附加代码:
//You assign value from your code, for now using dummy assignment
def requiredvalue = '123453'

//Store that value at test case level custom property, say ORGANIZATION_ID
context.testCase.setPropertyValue('ORGANIZATION_ID', requiredValue.toString())
  • 现在,您无需更新请求。而是使用如下所示的属性扩展,以便SoapUI自动处理来自proerties的所需值

    <organizationId>${#TestCase#ORGANIZATION_ID}</organizationId>