KarateDSL解析响应中的值并将其添加到下一个方案有效负载中

时间:2018-09-04 06:17:46

标签: karate

空手道的新手,我已经阅读了许多空手道教程,因此无法解决看起来很琐碎的问题。

我有一个发布请求,成功地列出了所有应用程序,从响应中我获得了第一个应用程序的ID并将其打印到控制台,并且显示没有问题。但是,当我开始在下一个场景的有效负载中使用applicationId时(因为同一个功能文件,applicationId不会添加到有效负载中。

Scenario: List all applications
Given path '/ListApplications'
And request {"request":{},"Session":'#(session)'}
When method POST
Then status 200
And def applicationId = response.Applications[0].Id
* print 'Hello ' + applicationId //i see the application id of 7203 here in the console log

Scenario: Get Application
Given path '/GetApplication'
And request {"request":{"ApplicationId":'#(applicationId)'},"Session":'#(session)'} 
When method POST //post here just uses string applicationId instead of 7203
Then status 200

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

您正在使用2个Scenario,而您应该只有一个。

请阅读文档的这一部分:https://github.com/intuit/karate#script-structure

我认为,如果您对此行进行注释,它将起作用:

# Scenario: Get Application