如何在 KARATE 框架中使用多个 Json 请求参数化单个 Cucumber API 测试场景

How to parametrise a single Cucumber API test Scenario with Multiple Json request in KARATE framework

截至目前,我有一个单一的黄瓜场景,其中 运行 带有一个 json 文件和一个 API 请求。我想 运行 使用相同 json 的多个 API 请求的相同场景。所以我可以验证多个 api 测试。

@测试1

特征:Test_Multiple_API_Karate

场景:Exe - 个人规则

* url restBaseApi
* configure headers = read('classpath:headers.js')
* def caseRequest = read('../data/caseRequest.json')
* def caseExpectedResponse = read('../data/caseExpectedResponse.json')


Given path ‘case-Karate-request’
And request caseRequest[i]
When method POST
Then status 200
Then print response
And match response == caseExpectedResponse[i]

我们需要 运行 空手道请求caseRequest.json(如下所述)

[ { "srId": "1-2A1", “处理信息”, “领域”:“软件”, “子区域”:“技术”, “状态”:“打开” }, { “srId”:“1-2A2”, “过程”:“制造”, “领域”:“软件”, “子区域”:“SAP”, “状态”:“关闭” } ]

如何运行此场景在单次执行中使用两个请求的测试数据。

请查看 Data Driven Scenarios

的文档
@Test1

Feature: Test_Multiple_API_Karate

Background: 
* def caseRequest = read('../data/caseRequest.json')
* def caseExpectedResponse = read('../data/caseExpectedResponse.json')

Scenario Outline: Exe - Individual Rule

* url restBaseApi
* configure headers = read('classpath:headers.js')


Given path ‘case-Karate-request’
And request __row
When method POST
Then status 200
Then print response
And match response == caseExpectedResponse[__num]
Examples:
|caseRequest|

我还建议您将两个 JSON 数组合并到单个 JSON 中,以避免在更改

时对索引造成任何混淆