从响应中剥离引号并转移到请求端点

时间:2016-10-25 09:28:53

标签: groovy soapui

我使用SoapUI测试一些REST api。作为回复,我得到的URL应该是下一个请求的端点。

我做了以下物业转移步骤

source : myApiCall
property : response

target : myHttpCall
property : endpoint

一切都会好的,但转移时,端点看起来像" www.myurl.com" (带引号)因此无效。如何从那里删除引号?

原始回复:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 98
Content-Type: application/json; charset=utf-8
Expires: Tue, 25 Oct 2016 09:04:28 GMT
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Date: Tue, 25 Oct 2016 09:04:28 GMT

"http://myurl.com/query?queryUid=90e97bdb-00a3-47c2-8809-c15ceec6ea1b"

1 个答案:

答案 0 :(得分:1)

问题是您的 Raw 响应包含String中的"引号。然后,您有两种可能的解决方案,从 Raw 响应中移除"并继续使用相同的属性转移。

或者,如果您无法更改响应,则可以使用 Groovy 脚本testStep获取 Raw 响应并对其进行操作以删除其他"设置端点前的引号:

// get your api call
def myApiCall = context.testCase.getTestStepByName('myApiCall')
// get the raw response
def responseUrl = myApiCall.getPropertyValue('Response')
// since your response contains the `"` remove it
responseUrl = responseUrl.replace('"','')
// set the endpoint correctly
def httpCall = context.testCase.getTestStepByName('myHttpCall')
httpCall.setPropertyValue("endpoint",responseUrl)