как создать и передать более или менее полезную нагрузку json в карате во время выполнения

Иногда мне нужно передать следующую полезную нагрузку

{
   "code": "hhhh",
   "name": "NDS coupon Testing",
   "description": "NDS couopn testing via postman",
   "status": "ACTIVE",
   "comments": null,
   "rules": {
               "AND":[{
                                       "rule":{
                                       "operator" : "EQ",
                                       "status" : "ACTIVE",
                                       "attribute_name" : "HOTEL_ID",
                                       "attribute_value" : "12744",
                                       "attribute_value_type" : "INTEGER"
                                       }
                               }]        
}
}

И иногда после полезной нагрузки

{
   "code": "hhhh",
   "name": "NDS coupon Testing",
   "description": "NDS couopn testing via postman",
   "status": "ACTIVE",
   "comments": null,
   "rules": {
               "AND":[{
                                       "rule":{
                                       "operator" : "EQ",
                                       "status" : "ACTIVE",
                                       "attribute_name" : "HOTEL_ID",
                                       "attribute_value" : "12744",
                                       "attribute_value_type" : "INTEGER"
                                       }
                               }
{

              "AND" : [{"rule" : {

                       "status" : "ACTIVE",
                       "operator" : "EQUALS_LT"
                       "attribute_name" : "checkout",
                       "attribute_value" : "2018-12-31T00:00:00-05:30",
                       "attribute_value_type" : "DATE_TIME"
                      }

                 },]        
}
}

а моя структура фреймворка - payload.json с полезной нагрузкой по умолчанию. Теперь в свой файл функций я загружаю значения payload.json set, которые хочу обновить, но как добавить / удалить часть json во время выполнения?


person Sourabh Chapali    schedule 10.10.2018    source источник


Ответы (1)


Есть несколько способов сделать это. Для дальнейшего чтения предлагаю следующие разделы:

И было бы очень хорошо, если бы вы нашли время, чтобы убедиться, что ваш JSON правильно сформирован. В любом случае.

* def json =
"""
{
  "code": "hhhh",
  "name": "NDS coupon Testing",
  "description": "NDS couopn testing via postman",
  "status": "ACTIVE",
  "comments": null,
  "rules": {
    "AND": [
      {
        "rule": {
          "operator": "EQ",
          "status": "ACTIVE",
          "attribute_name": "HOTEL_ID",
          "attribute_value": "12744",
          "attribute_value_type": "INTEGER"
        }
      },
      {
        "rule": {
          "status": "ACTIVE",
          "operator": "EQUALS_LT",
          "attribute_name": "checkout",
          "attribute_value": "2018-12-31T00:00:00-05:30",
          "attribute_value_type": "DATE_TIME"
        }
      }
    ]
  }
}
"""
* eval if (true) karate.remove('json', '$.rules.AND[1]')
* print json
person Peter Thomas    schedule 10.10.2018
comment
Это отлично работает, потому что у меня есть 2 правила: что, если мне нужно добавить больше блоков правил - person Sourabh Chapali; 11.10.2018
comment
@SourabhChapali прочитал ссылки, которые я разместил. есть много вариантов. вы всегда можете использовать JS-функцию с switch case или несколькими if - then операторами - person Peter Thomas; 11.10.2018
comment
Большое тебе спасибо - person Sourabh Chapali; 11.10.2018