空手道-如何使用执行挂钩获取响应

时间:2020-07-20 16:09:16

标签: karate

我有以下功能文件:

    Given def query = karate.call('classpath:query/Story/FindStoryByID.js')
    And def variables = { id: "xxyy" }
    And request { query: '#(query)', variables: '#(variables)' }
    When method POST
    Then status 200
    And match response.data.FindStoryByID.id != '#null'

我目前正在尝试执行beforeStep,以便使用query将功能的整个GraphQL请求(karate.write)写入文件。

到目前为止,我已经提出了这个建议:

    @Override
    public boolean beforeStep(Step step, ScenarioContext context) {
    if (step.getText().trim().contains("request {")) {
        System.out.println(step.getText());
    }
    return true;
}

这将成功触发打印,这表明我正在朝正确的方向戳。问题在于,我仍然无法弄清楚应该如何访问变量(query),就像我们可以在JS /功能文件(karate.get('query');)中所做的那样

我想知道是否有可能通过像这样的执行挂钩来实现这样的壮举?

非常感谢!

1 个答案:

答案 0 :(得分:1)

啊找到了!做到这一点

context.vars.get("query"));