如何在 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”,
“状态”:“关闭”
}
]
如何运行此场景在单次执行中使用两个请求的测试数据。
的文档
@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 中,以避免在更改
时对索引造成任何混淆
截至目前,我有一个单一的黄瓜场景,其中 运行 带有一个 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”, “状态”:“关闭” } ]
如何运行此场景在单次执行中使用两个请求的测试数据。
@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 中,以避免在更改
时对索引造成任何混淆