Karate 空手道自动化:我们有没有办法从json文件中动态设置场景名称

Karate 空手道自动化:我们有没有办法从json文件中动态设置场景名称,karate,Karate,我使用一个JSON文件作为API测试的测试用例文档。JSON包含测试用例ID、测试用例描述、头和请求体细节,这些应该是自动化的驱动因素 目前,我正在这个json文件上循环一个特性,以设置不同的头和体验证。不过,如果我可以在JSON文件进行迭代时从JSON文件中设置场景名称,这将非常有用 差不多 serverpost.feature Feature:re-usable feature to publish data Scenario: TC_NAME # TC_NAME is avaliabl

我使用一个JSON文件作为API测试的测试用例文档。JSON包含测试用例ID、测试用例描述、头和请求体细节,这些应该是自动化的驱动因素

目前,我正在这个json文件上循环一个特性,以设置不同的头和体验证。不过,如果我可以在JSON文件进行迭代时从JSON文件中设置场景名称,这将非常有用

差不多 serverpost.feature

Feature:re-usable feature to publish data

Scenario: TC_NAME  # TC_NAME is avaliable in the JSON data passed to this feature. However, CURRENTLY ITS NOT TAKING THIS DATA FROM JSON FILE.

Given path TC_ID   # TC ID is taken from JSON
Given url 'http://myappurl.com:8080/mytestapp/Servers/Data/uploadServer/'
And request { some: '#(BODY)' }   # Request Body Details is taken from JSON

请建议

老实说,您要求的是一个非常不必要的功能。请参考演示示例,在文档中查找

具体来说,看看这个:。创建/使用数据表有多种方法。不要试图维护两个文件——将空手道视为既是数据表又是测试执行。没有必要使事情进一步复杂化

如果您真的想重新使用一些JSON,这取决于您,但是您将无法更新场景名称,抱歉。我建议只使用
print
语句将名称转储到日志中,它将出现在HTML报告中(请参阅文档)。请注意,当使用JSON数组在循环中调用功能时,
call
参数已包含在报告中,因此您可能不需要执行任何操作


只是一个观察-您的问题似乎非常基本,您是否介意更彻底地阅读文档和示例,谢谢。

我真诚地认为,您要求的是一个非常不必要的功能。请参考演示示例,在文档中查找

具体来说,看看这个:。创建/使用数据表有多种方法。不要试图维护两个文件——将空手道视为既是数据表又是测试执行。没有必要使事情进一步复杂化

如果您真的想重新使用一些JSON,这取决于您,但是您将无法更新场景名称,抱歉。我建议只使用
print
语句将名称转储到日志中,它将出现在HTML报告中(请参阅文档)。请注意,当使用JSON数组在循环中调用功能时,
call
参数已包含在报告中,因此您可能不需要执行任何操作


只是一个观察-您的问题似乎非常基本,您是否介意更彻底地阅读文档和示例,谢谢。

嗨,Peter,我们正在尝试将Gauge框架中编写的QA自动化套件迁移到空手道。由于团队希望对配置进行最小的更改,因此我们创建了一个迁移util来将CSV内容迁移到JSON格式,这是由karate支持的。由于CSV的每一行都是一个测试用例,因此我们希望将TC_名称作为空手道中的场景名称,通过它我们可以实现一对一的映射。如果有任何方法可以将json中的数据设置为场景名称,请告知我们。@Sundan好的,这里有一个问题要问您。假设您可以设置场景名称,那么它在运行时对您有何帮助?当前在cucumber报告中,功能的报告仅显示一个场景名称,即使功能测试不同的标题组合。如果场景名称是从每个循环的Json文件中动态获取的,那么报告将显示针对每个测试用例ID执行的各个测试用例的详细信息。@Sundan好的,这是个坏消息——在Cucumber生命周期中(空手道使用的),一旦功能开始执行,就无法编辑/参数化场景名称(不足为奇)。这样做如何?与其生成JSON,不如生成一个包含多个场景的非常简单的空手道功能。将所有逻辑都放在后台。每个场景只需设置对所需JSON部分的引用。嘿,我认为这是一个好主意。如果你想集思广益,请打开一个问题:)嗨,Peter,我们正在尝试将在Gauge框架中编写的QA自动化套件迁移到空手道。由于团队希望对配置进行最小的更改,因此我们创建了一个迁移util来将CSV内容迁移到JSON格式,这是由karate支持的。由于CSV的每一行都是一个测试用例,因此我们希望将TC_名称作为空手道中的场景名称,通过它我们可以实现一对一的映射。如果有任何方法可以将json中的数据设置为场景名称,请告知我们。@Sundan好的,这里有一个问题要问您。假设您可以设置场景名称,那么它在运行时对您有何帮助?当前在cucumber报告中,功能的报告仅显示一个场景名称,即使功能测试不同的标题组合。如果场景名称是从每个循环的Json文件中动态获取的,那么报告将显示针对每个测试用例ID执行的各个测试用例的详细信息。@Sundan好的,这是个坏消息——在Cucumber生命周期中(空手道使用的),一旦功能开始执行,就无法编辑/参数化场景名称(不足为奇)。这样做如何?与其生成JSON,不如生成一个包含多个场景的非常简单的空手道功能。将所有逻辑都放在后台。每个场景只需设置对所需JSON部分的引用。嘿,我认为这是一个好主意。如果您想集思广益,请打开一个问题:)