Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Karate 空手道-如何使用执行挂钩获得响应_Karate - Fatal编程技术网

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

Karate 空手道-如何使用执行挂钩获得响应,karate,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 m

我有以下功能文件:

    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
,以便使用
karate.write将功能的整个GraphQL请求(
query
)写入一个文件

到目前为止,我已经得出了以下结论:

    @Override
    public boolean beforeStep(Step step, ScenarioContext context) {
    if (step.getText().trim().contains("request {")) {
        System.out.println(step.getText());
    }
    return true;
}
这成功触发了一个打印,这表明我在正确的方向戳。问题是我仍然无法弄清楚应该如何访问变量(
query
),就像我们可以在JS/Feature文件(
karate.get('query');
)上访问的变量一样

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


非常感谢

啊,找到了!这就行了

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

是的,您还可以通过
ctx.eval(string)