在saopui pro

时间:2015-12-07 15:14:05

标签: soapui

我正在尝试使用soapui pro中的Transfer属性将登录响应中的令牌号转移到注销请求。

响应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="https://in.io/ns/20110517">
   <soap:Body>
      <login_resp>
         <in_env>
            <cid>1JMRXxxxDWF31PXC0EFQ</cid>
            <result>IN_OK</result>
         </in_env>
         <item>
            <response>{"timestamp": "2015-12-07T14:14:35Z", "data": {"profile": null, "token": "1a66k111-3177-0000-000b-aed1478c8309", "endpoints": [{"label": "app1", "branches": [{"url": "/app1/v1.0/", "name": "ext-", "api_version": "1.0", "label": "ext"}], "appname": "app1"}]}, "success": true}</response>
         </item>
      </login_resp>
   </soap:Body>
</soap:Envelope>

然后我来源我把它: declare namespace ns1 ='https://in.io/ns/20110517'; // NS1:login_resp [1] / NS1:[1] / NS1:响应[1]

i Target我把这个: declare namespace gar ='test.in.v1.soap'; // GAR:logout_req [1] / GAR:令牌[1]

结果: 它从整个时间戳到真正的

1 个答案:

答案 0 :(得分:1)

您应该能够将标记值设置为groovy脚本本身的属性,而无需使用额外的property transfer测试步骤。

已在thread中提供了脚本,并修改了新要求所需的其他更改。

import com.eviware.soapui.support.XmlHolder
import net.sf.json.groovy.JsonSlurper
def soapResponse = messageExchange.responseContent 
def holder = new XmlHolder(soapResponse)
def response = holder.getNodeValue('//*:response')
def json = new JsonSlurper().parseText(response)
log.info json.data.profile
log.info json.data.endpoints
//appending to previous answer
log.info json.data.token
//set it to test case property
context.testCase.setProperty('TOKEN', json.data.token.toString())

使用${#TestCase#TOKEN},其中在以下测试步骤中需要令牌的值。