【问题标题】:Karate - want to get url along with query params in a variable空手道 - 想要获取 url 以及变量中的查询参数
【发布时间】:2022-01-05 23:57:32
【问题描述】:

空手道版本 - 1.0.0

我想获取查询参数和 url,并希望将其连接起来并将其保存到一个变量中。我正在使用以下语法,但它不起作用。当我在变量中使用参数时,它说参数未定义。有没有人可以解决这个问题? 当我使用以下 -

Given path '/test/1'
    And param product = "abc"
    And param country = "usa"
    * print param

org.graalvm.polyglot.PolyglotException: ReferenceError: "param" is not defined

如何连接 url 和 param 并获取变量。

非常感谢!

【问题讨论】:

    标签: karate


    【解决方案1】:

    以下是具有相应请求 url 和查询参数的示例,您可以对其执行此方案以获取响应和 GET 请求,

    Scenario: Sample File
    * def ScenarioEngine = Java.type('com.intuit.karate.core.ScenarioEngine');
    Given url 'https://reqres.in'
    And path '/api/users'
    And param page = 2
    And param pages = 1
    When method get
    And print ScenarioEngine.get().getRequest().getUrl()
    

    响应将与 GET url 和查询参数一起打印为, [print] https://reqres.in/api/users?pages=1&page=2

    【讨论】:

    • 实际上我不建议使用内部 API,因为它会改变。正确的方法是使用karate.prevRequest:stackoverflow.com/a/62510900/143475
    • 感谢@PeterThomas - 在请求执行后它可以工作。有没有办法在点击请求之前获取这些详细信息?我想在两者之前和之后进行比较。
    • @patel 在我看来这没有意义。您“之前”拥有完全控制权,那么为什么要进行不必要的检查?您是否正在尝试测试测试框架 :) 但认真 - 看看 params 关键字,也许这就是您想要的
    • 我的要求是我要传递 url 和查询参数,然后基于此获取授权标头,然后使用该标头执行我的请求。
    • 无论如何,我在 diff 变量中获取了参数并进行了连接...谢谢@PeterThomas
    猜你喜欢
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    相关资源
    最近更新 更多