soapui中的groovy脚本怎么写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了soapui中的groovy脚本怎么写相关的知识,希望对你有一定的参考价值。
参考技术A 下载并安装 SoapUI 的免费版本.当你第一次运行时,看起来像下面这样:
我创建了一个工作空间存储我的项目,叫做 Automation. 为此,我们要去选择 ‘File’-> ‘New Soap Project’ ,填入项目名称和web服务的.wsdl 文件位置.
请确保你勾选了创建请求 'Create Requests' 和创建测试套件 'Create TestSuite', 然后点击 'OK'.
SoapUI 将会检查web服务,返回你可以在服务上调用的操作/方法. 在我的任务中,只有一个叫做SubmitRequestResponse的操作, 但我还是选择了 'Single TestCase with One Request for Each Operation'.
点击 'OK' 而你将会收到提醒,告知要为Test SuiteMultiple命名.
现在当SoapUI已经设置好了项目, 展开整个项目结构如下:
如果你在 Request 1 上单击, 你可以看到一个基础的请求格式.
LeoXu
翻译于 5个月前
0人顶
顶 翻译的不错哦!
我们需要在继续进行之前确保调用从web服务上获得了一个响应,所以我们添加一个soap请求。在我的情况里,web服务需要一个客户号跟着一个地点位置标签跟着一个或多个SalesOrders。所以我在 body 中用我的soap请求替换<part>?</part>标签。
点击绿色箭头(左上方)然后你将获得一个XML响应。
如果你有响应,那么你就在你需要在的地方。
SOAPUI中的Groovy脚本,用于在Soap请求中插入新标记
我正在使用SOAP UI pro。我的要求是,我需要编写一个groovy脚本,为先前处理的请求添加一些标记和元素。
下面是我的初始请求,其名称是我的SOAP项目中的“Certify Request”
<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>
所以我的目标请求将如下所示:(并且它的名称应该是Initiate Request)
<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>
我在这个链接https://community.smartbear.com/t5/SoapUI-Pro/Using-Groovy-to-insert-new-tag-into-request-Need-help-with/m-p/124928#M28773上提到了解决方案,但无法成功。
谢谢你的帮助
答案
您可以在groovy脚本中使用属性
def senderAgent=" <pay:senderAgent> ....... </pay:senderAgent>"
testRunner.testCase.setPropertyValue("Variable",senderAgent)
然后将该变量放在XML中
<pay:payoutTransactionDetails>
${#TestCase#senderAgent}
<pay:transferDetails>
因此,您已将xml值存储在groovy中,然后在XML中进行扩展
以上是关于soapui中的groovy脚本怎么写的主要内容,如果未能解决你的问题,请参考以下文章
soapUI groovy脚本groovy.lang.MissingMethodException