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

空手道API测试-如何迭代读取多个json文件以用作单个场景的请求?[副本]

冯翔
2023-03-14

此外,我需要从项目的根文件夹中为以下代码提供json文件路径:

Feature: sample karate test script

Background:
* url 'http://somesample.com'

Scenario: Testing Karate

Given path '/json_verify'
And request read ('a_confirm1.json')
And header Accept = 'application/json'
When method post
Then status 200 

我有像a\u confirm1、a\u confirm2这样的文件名。

共有1个答案

花飞扬
2023-03-14

首先,您可以在read()函数中执行此操作,因为它是纯JS:

And def index = <index>
And request read ('a_confirm' + index + '.json')

然后请阅读数据驱动测试:https://github.com/intuit/karate#data-驱动测试

Examples:
| index |
|     1 |
|     2 |

有许多其他方法可以做到这一点,例如使用循环。只需浏览示例和演示。从“根文件夹”是一种不好的做法,请尝试将它们保存在项目目录下。但如果您坚持,请参考以下内容:https://stackoverflow.com/a/53304969/143475

 类似资料:
  • 到目前为止,我有一个单一的cucumber场景,它与一个带有单一API请求的json文件一起运行。我希望使用相同的JSON为多个API请求运行相同的场景。所以我可以验证多个api测试。 场景:Exe-个人规则 我们需要用caseRequest.json运行空手道请求(如下所述) [{“SRID”:“1-2A1”,“流程”:“信息”,“区域”:“软件”,“子区域”:“技术”,“状态”:“打开”},{

  • 我需要关于适当的空手道请求的指示,以得到响应,这是一个设计的jpg文件。 我想我写了有效的请求,因为邮递员能够响应和返回的jpg文件预期。但同样的要求在空手道中不起作用。它返回一些java异常,这些异常没有为我澄清原因。 请帮助!

  • 我在后台调用功能文件中的多个json和js文件,这是功能文件中每个场景所必需的。 def test=read('classpath:testData/responseFiles/test.json') 问题是,它正在为每个场景运行/读取。有什么我可以做的,这样它只读一次功能文件,可以用于所有的场景。我用的是9.0.0空手道版本 callonce仅用于调用功能文件而不是json文件

  • 我们已经知道场景是并行运行的。但是我们需要从功能文件(将从另一个功能文件调用)返回变量。 我们在功能文件中有如下多个场景: 我们正在重用上面的特征文件,以获取用于另一个特征文件的变量。然而,其他特征文件似乎间歇性失败,抱怨从其他特征文件获得的变量为空。 我的假设是返回的变量没有正确返回,因为功能文件上有多个场景。我们试图删除@负面场景,但只有1个场景。突然间,断断续续的故障消失了。 在保持并行运行

  • 我在功能文件中使用空手道配置后场景=,并成功地获得结果,并且能够进行数据库调用。如何在Karate-config.js? 注意:我还有一个Java类调用。 任何像这样的实现? 在特征文件中使用的代码 更新:使用空手道后的担忧。配置 场景:我有两个功能文件 特性1:API)包含@smoke@测试标签 功能2: UI)包含@dropdown@Angular My在仅执行@smoke test、My

  • 可能重复: 我有一个嵌套的数据结构/JSON,如何访问一个特定的值? 我想迭代一个二维的json对象...对于一维的json对象,我这样做 关于二维的,我该怎么做??