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

In Karate Scenario Outline test, how to pass param values in the Examples table through a variable

我在大多数 API 请求中使用相同的数据集,例如。日期范围 FromDate 和 ToDate。但是,如果我想更改日期范围,那么我将不得不为所有场景大纲更改它。为避免这种情况,我可以在背景部分定义日期范围并在场景大纲示例 table 中使用变量名吗? 空手道可以做到吗?请帮忙。谢谢

尝试了很多方法,但如果不知何故无法实现。

功能:验证产品是否由 API 正确退回 背景: * 配置 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        |

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

当然可以。因为定义为普通变量的更容易使用,所以你直接引用它而不是添加angle-brackets.

您需要做这个小改动:

And param FromDate = FromDate1
And param ToDate = ToDate1

请注意,从 0.9.3 版本开始,这个混淆已得到解决,您不再需要 angle-brackets,甚至 Scenario Outline。请阅读:https://github.com/intuit/karate#scenario-outline-enhancements