在大纲场景的情况下检索变量
retrieve a variable in the case of an outline scenario
我想恢复我在功能 A
中通过简单 Post 请求传递的对象 ID (processId
)
Given url <url>
And path 'processes'
And header Authorization = 'Bearer ' + <token>
And request process
When method post
Then status 201
* def processId = response.id
我在场景大纲(变量 <url>
)中使用 3 个不同的环境测试此请求。所以我必须恢复 3 id 才能在功能 B
中使用它们
我的问题是:如何检索这些 ID 以用于功能 B
谢谢
你不可能 re-use 从一个 Scenario
到另一个 Scenario
的数据, Feature
肯定是不可能的。请花一些时间阅读此内容:
就是说,如果您需要做的只是在循环中调用 Scenario
,那么就这样做吧。这是一个您可以尝试的简单示例:
Feature:
Scenario:
* table data
| value |
| 'one' |
| 'two' |
* def result = call read('called.feature') data
* def traceIds = $result[*].traceId
* print traceIds
而 called.feature
就是:
@ignore
Feature:
Scenario:
* url 'https://httpbin.org/post'
* request { key: '#(value)' }
* method post
* def traceId = response.headers['X-Amzn-Trace-Id']
请阅读文档以了解如何从“被调用”功能“收集”数据,traceId
在这种情况下:https://github.com/karatelabs/karate#data-driven-features
我想恢复我在功能 A
中通过简单 Post 请求传递的对象 ID (processId
)
Given url <url>
And path 'processes'
And header Authorization = 'Bearer ' + <token>
And request process
When method post
Then status 201
* def processId = response.id
我在场景大纲(变量 <url>
)中使用 3 个不同的环境测试此请求。所以我必须恢复 3 id 才能在功能 B
我的问题是:如何检索这些 ID 以用于功能 B
谢谢
你不可能 re-use 从一个 Scenario
到另一个 Scenario
的数据, Feature
肯定是不可能的。请花一些时间阅读此内容:
就是说,如果您需要做的只是在循环中调用 Scenario
,那么就这样做吧。这是一个您可以尝试的简单示例:
Feature:
Scenario:
* table data
| value |
| 'one' |
| 'two' |
* def result = call read('called.feature') data
* def traceIds = $result[*].traceId
* print traceIds
而 called.feature
就是:
@ignore
Feature:
Scenario:
* url 'https://httpbin.org/post'
* request { key: '#(value)' }
* method post
* def traceId = response.headers['X-Amzn-Trace-Id']
请阅读文档以了解如何从“被调用”功能“收集”数据,traceId
在这种情况下:https://github.com/karatelabs/karate#data-driven-features