首页 > 解决方案 > 如何根据静态数据迭代示例部分中的每一行

问题描述

要求: 我想根据输入 Json 中存在的字段(ProductType)迭代示例部分中的每一行。

ProductType 的值可以是 11 或 22 或 33。但这些值的 expectedAmount 应该相同。我在下面给出一个片段 -

**Feature:** To check expected results for different values of ProductType

  Background: 
    * url http://localhost:8080
    * header Content-Type = 'application/json'

  Scenario Outline: To check expected results for different values of ProductType
    Given path PATH
    And request <data>
    When method POST
    Then status 200
    And match $.Parent[0].Amount ==  expectedAmount>
Examples: 
  | data                                                 | ExpectedAmount |
  | read('classpath:' + INPUT_JSON_PATH + '/Test1.json') |        1234.56 |
  | read('classpath:' + INPUT_JSON_PATH + '/Test2.json') |        6789.12 |
  | read('classpath:' + INPUT_JSON_PATH + '/Test3.json') |        3453.56 |

json输入:

{
      "Parent" : [ {
      "Id" : "1",
      "productType" : 11
      }]

}

你能建议一个解决方案吗?

谢谢,阿比

标签: karate

解决方案


这些Examples:行不支持任何变量评估,例如read('classpath:' + INPUT_JSON_PATH + '/Test1.json'),请改为:

* def data = read('classpath:' + INPUT_JSON_PATH + '/' + file)

Examples: 
  | file       | ExpectedAmount |
  | Test1.json |        1234.56 |
  | Test2.json |        6789.12 |
  | Test3.json |        3453.56 |

我没有阅读您的其余问题,因为我仍然不明白。


推荐阅读