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

空手道DSL中情景大纲动态变量的传递

宋典
2023-03-14

我有一个情况,我需要在空手道中传递不同种类的日期类型变量。为此,我创建了一个JAVA方法,并在一个特性文件中调用它,如下所示。

我读到它的cucumber限制,不能支持动态变量在场景大纲。我也读过https://github.com/intuit/karate#the-karate-way,但不知何故,我不知道如何解决下面的情况。

Scenario Outline: test scenario outline
    * def testData = Java.type('zoomintegration.utils.DataGenerator')
    * def meetDate = testData.futureDate(2)


    * def jsonPayLoad =
    """
    {
      "meetingSource": <meetingSource>,
      "hostId": <host>,
      "topic": <topic>,
      "agenda": <topic>,
      "startDateTime": <meetingDate>",
      "timeZone": "Asia/Calcutta",
      "duration": <duration>
    }
    """
    * print jsonPayLoad

    Examples:
    |meetingSource|host|topic|duration|meetingDate|
    |ZOOM          |  abc  |Quarter meeting|30|0|
    |SKYPE         |  abc  |Quarter meeting|30|'1980-08-12'|
    |MS            |  abc  |Quarter meeting|30|'2030-12-12'|

共有1个答案

阮选
2023-03-14

下面的代码适用于我:

  Scenario Outline: test scenario outline
    * def testData = Java.type('zoomintegration.utils.DataGenerator')
    * def meetDate = testData.futureDate(<meetingDate>)

    * def jsonPayLoad =
    """
    {
      "meetingSource": <meetingSource>,
      "hostId": <host>,
      "topic": <topic>,
      "agenda": <topic>,
      "startDateTime": #(meetDate),
      "timeZone": "Asia/Calcutta",
      "duration": <duration>
    }
    """
    * print jsonPayLoad

    Examples:
      | meetingSource | host | topic           | duration | meetingDate |
      | ZOOM          | abc  | Quarter meeting | 30       | 1           |
      | SKYPE         | abc  | Quarter meeting | 30       | 2           |
      | MS            | abc  | Quarter meeting | 30       | 3           |
 类似资料:
  • 下面是我的示例功能文件: 我将期待失败的这个功能,并转移到下一个。

  • 我想使用资源文件夹中的所有图像运行我的场景。这意味着每次使用不同的图像访问相同的api(首先将它们转换为Base64编码)。但是,由于这些图像已经在资源文件夹中,因此在csv中保存一些名称或记录以供场景大纲使用是没有意义的。我可以在示例部分调用我自己的函数(有代码从资源文件夹中获取图像并将其转换为base64),这样对于每个图像,它都会再次命中相同的api。

  • 我在我的大多数API请求中都使用了相同的数据集。日期范围为FromDate和ToDate。但是,如果我希望更改日期范围,那么我将不得不更改所有场景大纲的日期范围。为了避免这种情况,我是否可以在后台部分定义日期范围&在Scenario Outline Examples表中使用变量名?空手道能做到吗?请帮帮忙。多谢了。 尝试了很多方法,但都无法成功。 功能:验证API后台是否正确返回了产品:*conf

  • 在这里,我想澄清一下如何为动态JSON索引大小创建动态示例表 我的JSON看起来像 Env-Dev-2服务器 Env-Uat-3服务器 我的场景大纲看起来像 上述错误: 1) *动态表达式计算失败:result.response.abc 2)com.intuit.karate.karateExpresion: ---- javascript评估失败result.response.abc,Requi