我有以下功能文件:
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');
)中所做的那样
我想知道是否有可能通过像这样的执行挂钩来实现这样的壮举?
非常感谢!
答案 0 :(得分:1)
啊找到了!做到这一点
context.vars.get("query"));