gpt4 book ai didi

Karate :使用多个 url 路径调用相同的功能文件

转载 作者:行者123 更新时间:2023-12-04 04:13:42 34 4
gpt4 key购买 nike

我需要在具有多个端点 URL 的功能文件中运行测试。所有测试都命中了 REST 端点,我需要为相同的测试命中多个端点。我想出了以下两个可行的解决方案,但它们都有维护开销。所以我想知道是否有更好的解决方案。

<强>1。添加虚拟特征文件:添加一个新的虚拟特征文件,并使用端点 url 作为参数调用实际特征文件,如下所示。实际的特征文件有 100 行的测试数据。因此,当单独执行此操作时, cucumber 报告显示了 100 个场景,很容易看出有多少通过/失败。但是,当使用虚拟特征文件执行时,报告仅显示虚拟特征文件中的 1 个场景,并显示其下的所有 100 个测试用例。

  Scenario: Call actual feature file with internal URL
* def params = { endpoint_url: 'internal' }
* karate.callSingle('actualTestCases.feature', params);

Scenario: Call actual feature file with public URL
* def params = { endpoint_url: 'public' }
* karate.callSingle('actualTestCases.feature', params);

<强>2。复制测试数据行并添加一个新列 endpoint_url:在测试数据中,添加重复的测试数据行,并添加一列“endpoint_url”,其值如“internal”、“public”。在实际特征文件中使用此列数据。这具有需要复制测试数据的开销。我有3000多行测试数据。

      |testcaseName|email|endpoint_url
|"Valid Parameters"|["validtests@test.com"]|"internal"
|"Valid Parameters"|["validtests@test.com"]|"public"

最佳答案

只需使用 JSON 作为输入文件。
如果您需要创建更多动态 url,请使用 karate.map 为变量填充更多值并传递给您的功能。

记得使用动词(When, Then, And),这样报告才会显示内容。否则您需要手动配置。

输入文件urls.json:

[ 
{"url" : "https://jsonplaceholder.typicode.com/users/1"},
{"url" : "https://jsonplaceholder.typicode.com/users/2"},
{"url" : "https://jsonplaceholder.typicode.com/users/3"}
]

主要特征文件main.feature:

Feature: Test REST

Scenario: Dynamic URL Test
When def urls = read('./urls.json')
Then call read('_sub.feature') urls

子特征文件_sub.feature:

@ignore
Feature:

Scenario: Call URL
* def keyword = __arg.url
Given driver keyword
Then retry(5, 1000).waitUntil("document.readyState == 'complete'")

关于 Karate :使用多个 url 路径调用相同的功能文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61182047/

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