Replace/Update groovy 中的现有节点值

Replace/Update a existing node value in groovy

下面是我的示例 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") 触发它。

有助于理解如何 update/replace 使用新值节点并重新触发 API 以捕获许多输入的结果。

这是你需要做的:

  • 读取文件提取所需的值并将其存储在测试用例级别自定义 属性。假设您正在使用 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>