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

在空手道场景大纲测试中,如何通过变量传递示例表中的参数值

容寒
2023-03-14

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

尝试了很多方法,但都无法成功。

功能:验证API后台是否正确返回了产品:*configure ssl=true*url“https://......”并且def FromDate1=“2019/06/27”,def ToDate1=“2019/06/27”

Scenario Outline:
Given path 'GetContext'
And param FromDate = '<FromDate>'
And param ToDate = '<ToDate>'
And param CompAreaId = '<CompAreaId>'
And param RegId = '<RegId>'
When method get
Then status 200
* def res = response
* print 'response:', response

  Examples:
    | FromDate       | ToDate      | CompAreaId       | RegId    |
    | FromDate1      | 2019/06/27  | 20               | 4        |
    | 2019/06/28     | 2019/06/28  | 21               | 5        |
    | 2019/06/29     | 2019/06/29  | 22               | 6        |

我应该能够使用包含要在场景大纲中的示例表中使用的值的变量名。

共有1个答案

钱季
2023-03-14

是的。当然。因为被定义为普通变量的东西更容易使用,所以您可以直接引用它,而不是添加尖括号。

你需要做这个小小的改变:

And param FromDate = FromDate1
And param ToDate = ToDate1

请注意,在版本0.9.3以后的版本中,这种混淆得到了解决,即使对于场景大纲也不再需要尖括号。请阅读:https://github.com/intuit/karate#Scenario-Outline-Enhancements

 类似资料:
  • 我有一个情况,我需要在空手道中传递不同种类的日期类型变量。为此,我创建了一个JAVA方法,并在一个特性文件中调用它,如下所示。 我读到它的cucumber限制,不能支持动态变量在场景大纲。我也读过https://github.com/intuit/karate#the-karate-way,但不知何故,我不知道如何解决下面的情况。

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

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

  • 有没有可能用gherkin写一个场景大纲,其中有一个断言步骤,而不是在所有的例子中都需要? null 有没有更好的写法?

  • 空手道是否支持这样一个特性:您可以在一个场景中定义一个变量,并在同一个特性文件中在其他场景中重用它。我试着做同样的事,但得到一个错误。在同一个特性文件中重用变量的最佳方法是什么? 错误: