【问题标题】:Karate; Multiple urls in a single scenario [duplicate]空手道;单个场景中的多个网址[重复]
【发布时间】: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

标签: automated-tests karate


【解决方案1】:

您可能已经知道,“空手道 HTML 报告”将向您显示请求/响应和标头,只要您将 DEBUG 日志级别放在 log4j 配置中,这将回答您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    相关资源
    最近更新 更多