当前位置: 首页 > 知识库问答 >
问题:

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

欧阳博超
2023-03-14

到目前为止,我有一个单一的cucumber场景,它与一个带有单一API请求的json文件一起运行。我希望使用相同的JSON为多个API请求运行相同的场景。所以我可以验证多个api测试。

场景: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”,“状态”:“关闭”}]

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

共有1个答案

滕成双
2023-03-14

请查看数据驱动方案的文档

@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,以避免在更改索引时出现任何混乱

 类似资料:
  • 我试图为我的项目设置空手道框架。对于一个简单的GET请求,我得到了以下SSLHandshakeException。当我在浏览器中尝试endpoint时,我得到了正确的响应,但当我尝试运行cucumber特性文件时,我看到了以下错误。我尝试,,但看到相同的错误

  • 参数化测试可以将不同的数据输入到测试中。不过,我创建了一个示例计算器,希望为其创建参数化测试。但是,我发现您只能为单个测试创建一组参数化数据。 我已经创建了参数化测试,用于添加两个数字,得到预期的结果。由于预期结果会有所不同,因此该数据将不适用于减法运算。 有没有可能为每个加、减、乘、除测试提供参数化数据? 非常感谢您的建议,

  • 我有一个JSON数据文件 首先,我想读取这个数据,当wheels.value==Yes时,我想点击一个API,否则点击另一个API,我想知道如何在post请求中或从文件中传递多个参数。 Post请求数据如下: 上面的数据我正在邮递员中传递“表单-数据”。 提前致谢

  • 任何帮助都将不胜感激。谢谢!

  • 假设我有一个Employee类。它有很多字段,比如id、名字、姓氏、姓名、年龄、薪水和其他字段。现在,我正在进行一个Get查询,希望使用所有这些字段(required=false)作为请求参数传递。 但问题是,可能有许多组合,如(firstName, age)或(age,工资,lastName)或(指定,年龄,工资,lastName)等等。那么我应该如何处理所有这些筛选器。我必须为每个案例编写每个

  • 此外,我需要从项目的根文件夹中为以下代码提供json文件路径: 我有像a\u confirm1、a\u confirm2这样的文件名。