在下一个请求中,如何使用响应头中的位置?

时间:2019-05-30 17:34:57

标签: karate

我正在使用空手道测试进行一些测试。

第一个期望201和位置的帖子。

第二次使用从响应到执行获取的位置。

有人知道我该怎么用空手道吗?

下面的代码是我的尝试,

Given path 'alpha/test'
And request
"""
 {
   "id": '#(uuid)',
    "content": "test",
    "isActive": true
 }
"""
When method post
Then status 201
And def endpointLocation = responseHeaders['Location']
And print endpointLocation

Given url 'endpointLocation'
When method get
Then status 200
And match response ==
"""
 {
   "id": '#(uuid)'
 }
"""

但是我得到了:

18:30:12.819 [main] ERROR com.intuit.karate - org.apache.http.client.ClientProtocolException, http call failed after 252 milliseconds for URL: endpointLocation
18:30:12.820 [main] ERROR com.intuit.karate - http request failed: 
org.apache.http.client.ClientProtocolException
testApi.feature:263 -
org.apache.http.client.ClientProtocolException

我不知道为什么。

[编辑]

在彼得的劝告下,谢谢!

打印返回:

08:59:33.610 [main] INFO com.intuit.karate-[print] [   “ https://www.test.com/enpoint/4603b043-ea8c-470d-a5a9-2aa50aea4f75”]

现在我在打电话

给出url端点位置

我得到

08:59:33.611 [main]错误com.intuit.karate-HTTP请求失败:java.net.URISyntaxException:方案名称中索引0处的字符非法:[“ https://www.test.com/enpoint/4603b043-ea8c-470d-a5a9-2aa50aea4f75”] 欺诈MgmtApi.feature:263-java.net.URISyntaxException:方案名称中索引0处的非法字符:[“ https://www.test.com/enpoint/4603b043-ea8c-470d-a5a9-2aa50aea4f75”]

我还试图修剪第一个和最后一个角色,创建一个:

  • def trim = “” 函数(myText){结果= myText.substring(1,myText.length-1)} “””

或myText.slice(1,-1)

1 个答案:

答案 0 :(得分:0)

从错误消息中:http call failed after 252 milliseconds for URL: endpointLocation

很明显,您设置的url错误。如果endpointLocation变量设置正确,请首先尝试对其进行硬编码,然后进行更改。您可以print对其进行检查。

Given url endpointLocation