gpt4 book ai didi

karate - 如何在 Karate 中动态设置从文件中读取的json值

转载 作者:行者123 更新时间:2023-12-04 01:35:28 26 4
gpt4 key购买 nike

我想使用 KARATE 框架的数据驱动功能为 JSON 中的某些元素动态设置值(从文件读取)。以下是更多详细信息:

request.json -> { wheels : <wheel>, color: '<color>' }

功能:从文件中读取json输入并遍历数据表值

背景:

* url ''
* def reqJson = read('request.json')
* print reqJson

场景大纲:测试文件读取

# I want to avoid writing below set statements for each element in request
#* set reqJson.wheels = <wheel>
#* set reqJson.color = '<color>'

Given path ''
And request reqJson
When method POST
Then status 200
And match response contains {mode: '<result>'}

Examples:

| wheel | color | result |
| 4 | red | car |
| 2 | any | bicycle |

我正在使用 Karate 开发自动化框架,我的目的是将示例请求保存在给定 API 的 JSON 文件中,然后在执行期间我希望将元素值替换为上表中给出的值。我不想为每个元素编写 set 语句(上面的注释行)

P.S.:我尝试使用表格方法调用其他功能文件。但是,我想为每个 API 保留一个功能文件,因此想知道上述方法是否有任何可能的方法

最佳答案

我想你错过了embedded expressions在许多情况下,这比 set 关键字更简单,尤其是从文件中读取时。

例如:

request.json -> { wheels: '#(wheels)', color: '#(color)' }

然后这会起作用:

* def wheels = 4
* def color = 'blue'
* def reqJson = read('request.json')
* match reqJson == { wheels: 4, color: 'blue' }

如果你通过 demo examples你会得到很多其他的想法。例如:

* table rows
| wheels | color | result |
| 4 | 'blue' | 'car' |
| 2 | 'red' | 'bike' |

* call read('make-request.feature') rows

make-request.feature 是:

Given path ''
And request { wheels: '#(wheels)', color: '#(color)' }
When method POST
Then status 200
And match response contains { mode: '#(result)' }

关于karate - 如何在 Karate 中动态设置从文件中读取的json值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50088250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com