【发布时间】:2019-05-01 14:00:26
【问题描述】:
这是我之前问过Using response data from one scenario to another的问题的后续内容
我希望从一个 url 中的响应中获取信息,然后在 second url 中将其用于另一个断言。
类似这样的:
Scenario: Search for asset
Given url "https://foo.bar.buzz"
When method get
Then status 200
* def responseItem = $.items[0].id // variable initialized from the response
Given url "https://foo.bar.buzz/" + responseItem + "/metadata"
// making request payload
When method put.....
现在当我运行它时,它会挂在第二个 Given 语句上。
关于如何解决这个问题的任何想法?
【问题讨论】:
-
“挂断电话”是对问题的糟糕描述。请加倍努力。如果
responseItem是一个有效的字符串,它应该可以工作 -
我对请求方法(现在是 GET)进行了更改。现在它不是完全停止,而是告诉我该请求是未经授权的(一种改进)。但这很令人困惑,因为我在
Background中定义了我的标头数据,而我在同一个Scenario中。我的第二个请求不应该使用相同的身份验证吗? -
完全取决于您在
Background中所做的事情。希望其他人有耐心来帮助你——这是我剩下的唯一建议:github.com/intuit/karate/wiki/How-to-Submit-an-Issue -
我想出了我需要做什么;但这是出乎意料的。我在
Background中有* def headerData = { Authorization: Bearer foo/token }。我必须添加And headers headerData在制作我的第二个Given url声明才能使其工作 -
如果您阅读文档不会出乎意料:github.com/intuit/karate#header