当前位置: 首页 > 知识库问答 >
问题:

在SOAPUI中插入新标记的Groovy脚本

秦跃
2023-03-14
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pay="http://www.abcdefgh.com/eai/xsd/custom/Payout.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <pay:request>
         <pay:header>
            <pay:applicationID>TANDEM001</pay:applicationID>
            <pay:hostname>WUNS1</pay:hostname>
            <pay:timestamp>${=new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())}</pay:timestamp>
            <pay:correlationID>${#TestCase#CorrelationID}</pay:correlationID>
         </pay:header>

         <pay:input>
            <pay:payoutTransactionDetails>             

               <pay:transferDetails>
                  <pay:sendCountryCode>${#TestCase#sendCountryCode}</pay:sendCountryCode>
                  <pay:sendAmount>
                     <pay:currencyCode>${#TestCase#sendCurrencyCode}</pay:currencyCode>
                     <pay:value multiplier="100">${#TestCase#sendAmount}</pay:value>
                     <pay:fxRate multiplier="100">${#TestCase#senderfxRate}</pay:fxRate>

                  </pay:sendAmount>
                  <pay:receiveCountryCode>${#TestCase#receiveCountryCode}</pay:receiveCountryCode>
                  <pay:receiveAmount>
                     <pay:currencyCode>${#TestCase#receiveCurrencyCode}</pay:currencyCode>
                     <pay:value multiplier="100">${#TestCase#receiveAmount}</pay:value>
                     <pay:fxRate multiplier="100">${#TestCase#receiverfxRate}</pay:fxRate>
                  </pay:receiveAmount>
                  <pay:overallFX multiplier="100000000">${#TestCase#OverallFX}</pay:overallFX>
               </pay:transferDetails>          

            </pay:payoutTransactionDetails>
         </pay:input>
      </pay:request>
   </soapenv:Body>
</soapenv:Envelope>
 <pay:senderAgent>
                  <pay:agentID>1760289</pay:agentID>
                  <pay:accountNumber>036526952</pay:accountNumber>
               </pay:senderAgent>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pay="http://www.abcdefgh.com/eai/xsd/custom/Payout.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <pay:request>
         <pay:header>
            <pay:applicationID>TANDEM001</pay:applicationID>
            <pay:hostname>WUNS1</pay:hostname>
            <pay:timestamp>${=new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())}</pay:timestamp>
            <pay:correlationID>${#TestCase#CorrelationID}</pay:correlationID>
         </pay:header>


         <pay:input>
            <pay:payoutTransactionDetails>

               <pay:senderAgent>
                  <pay:agentID>${#TestCase#senderAgentID}</pay:agentID>
                  <pay:accountNumber>${#TestCase#senderAgentAcountNumber}</pay:accountNumber>
               </pay:senderAgent>

               <pay:transferDetails>
                  <pay:sendCountryCode>${#TestCase#sendCountryCode}</pay:sendCountryCode>
                  <pay:sendAmount>
                     <pay:currencyCode>${#TestCase#sendCurrencyCode}</pay:currencyCode>
                     <pay:value multiplier="100">${#TestCase#sendAmount}</pay:value>
                     <pay:fxRate multiplier="100">${#TestCase#senderfxRate}</pay:fxRate>

                  </pay:sendAmount>
                  <pay:receiveCountryCode>${#TestCase#receiveCountryCode}</pay:receiveCountryCode>
                  <pay:receiveAmount>
                     <pay:currencyCode>${#TestCase#receiveCurrencyCode}</pay:currencyCode>
                     <pay:value multiplier="100">${#TestCase#receiveAmount}</pay:value>
                     <pay:fxRate multiplier="100">${#TestCase#receiverfxRate}</pay:fxRate>
                  </pay:receiveAmount>
                  <pay:overallFX multiplier="100000000">${#TestCase#OverallFX}</pay:overallFX>
               </pay:transferDetails>

            </pay:payoutTransactionDetails>
         </pay:input>
      </pay:request>
   </soapenv:Body>
</soapenv:Envelope>

谢谢你的帮助

共有1个答案

柴飞扬
2023-03-14

您可以在groovy脚本中使用一个属性

def senderAgent=" <pay:senderAgent> .......   </pay:senderAgent>" 
testRunner.testCase.setPropertyValue("Variable",senderAgent)    

然后将该变量放置在XML中

<pay:payoutTransactionDetails>
${#TestCase#senderAgent}
<pay:transferDetails>

因此,您已经将xml值存储在groovy中,然后在xml内部展开该值

 类似资料:
  • 我正在使用SOAPUI进行web服务测试。我想通过groovy脚本测试步骤进行xml解析。对于一个测试用例,我必须在SOAP请求中插入xml标记[like]。 我可以使用将value设置为xml标记,使用与尝试在SOAP请求中插入xml标记相同的函数,比如。但是在SOAP请求xml标记中设置为 由于这个问题,SOAP请求不能识别xml标记,因此响应中的值不是get reflect/update。

  • nit.java:593nit.java:569AntlrParserPorg.codehaus.groovy.control.CSTIntoAST(AntlrParserPnit.compile)在nit.java:546AntlrParserPgroovy.lang.CST(AntlrParserPoader.do)在oader.java:298SourceUnit.parse(SourceU

  • 我在从groovy脚本(groovy脚本是SoapUI测试套件的一部分)运行java代码时遇到了问题,我创建了简单的脚本: TopClass的代码: 我将myjar.jar放入soapui-pro-2.5\lib和soapui-pro-2.5\bin\ext文件夹中。但行书我得到: org.codehaus.groovy.control.multipleCompilationerrorsExcep

  • 当我尝试在soapUI测试步骤中解析响应时,收到了以下异常。也尝试了getXMLHolder方法。还是没运气。 答复如下

  • 我从项目中的脚本执行一个脚本。 该脚本中还有另一个循环,即执行请求。之后,应该执行另外两个脚本来处理输出。这些在请求步骤之后的相同testcase中,但不会自动执行。

  • 我使用Soap用户界面来测试我的网络服务。每次我想执行我的测试请求时,我都需要更新定义。我知道有可能添加Groovy脚本来让WSDL自动更新。但是我不知道我应该添加这个脚本来使它工作。有人能描述一下我每次执行请求时需要做的使这个脚本运行的步骤吗?