【问题标题】:Karate Automation: Is there any way we can set the Scenario name dynamically from a json file [duplicate]空手道自动化:有什么方法可以从 json 文件中动态设置场景名称 [重复]
【发布时间】:2017-11-27 21:09:28
【问题描述】:

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

目前我正在这个 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

请推荐

【问题讨论】:

    标签: karate


    【解决方案1】:

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

    具体看这个:dynamic-params.feature。有多种方法可以创建/使用数据表。而不是试图维护 2 个文件 - 将空手道视为两者 - 您的数据表和测试执行。没有必要让事情进一步复杂化。

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

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

    【讨论】:

    • 嗨彼得,我们正在尝试将用 Gauge 框架编写的 QA 自动化套件迁移到空手道。由于团队希望进行最少的配置更改,因此我们创建了一个迁移工具来将 CSV 内容迁移到 JSON 格式,空手道支持这种格式。由于 CSV 的每一行都是一个测试用例,我们希望将 TC_NAME 视为空手道中的场景名称,通过它我们可以获得一对一的映射。如果有任何方法可以将 json 中的数据设置为场景名称,请告诉我们。
    • @Sundan 好的,这是给你的问题。假设您可以设置场景名称,它会在运行时为您提供哪些帮助?
    • 目前在黄瓜报告中,一个功能的报告只显示一个场景名称,即使该功能测试不同的标题组合。如果场景名称是从每个循环的 Json 文件中动态获取的,则报告会显示针对每个测试用例 ID 执行的各个测试用例的详细信息。
    • @Sundan 好的,这是个坏消息 - 在 Cucumber 生命周期(空手道使用)中,一旦功能开始执行,就无法编辑/参数化场景名称(不足为奇)。怎么样 - 而不是生成 JSON,为什么不生成具有多个场景的非常小的空手道功能。在后台拥有所有逻辑。每个场景只会设置对所需 JSON 部分的引用。嘿,我认为这是个好主意。如果您想进行更多头脑风暴,请打开一个问题 :)
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多