мы можем передать несколько аргументов в ключе Получить значение Json? - PullRequest
0 голосов
/ 08 ноября 2019

Сейчас я получаю одно значение аргумента через Получить значение Json ключ

Create Session  Get_Inventory_Details   ${Base_URL}                 
${Headers}= Create Dictionary   Content-Type=application/json   Authorization=bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InByaXRpc3dhaW4iLCJpYXQiOjE1Njc1MTQ2NDd9.o3qTPbj2KH6AgHpIf1BLV5nOlGL-fR83wSGAYyuWsBQ              
${Response}=    Get Request Get_Inventory_Details   inventorybyOutlet/7 headers=${Headers}          
Log To Console  ${Response.status_code}                     
Log Many    ${Response.content}                     
${actual_response}= Convert To String   ${Response.status_code}                 
Should Be Equal ${actual_response}  200 
${quantity}=    Get Json Value  ${Response.content} /0/currentInventory             
Run Keyword If  ${quantity}>10  Log Threshold Condition Pass    ELSE    Log Threshold Condition Fail

Какой может быть выход, если я хочу передать более одного аргумента Получить значение Json

Я пытался

${quantity}=    Get Json Value  ${Response.content} /0/currentInventory/0/itemid

Ссылка на данные Json


[ 
   { 
      "isInventoryOperationEnable":1,
      "itemId":1,
      "name":"Afghani Chicken Tikka Biryani (Heavy Eater)",
      "posName":"Afghani Chicken Tikka Biryani (Heavy Eater)",
      "image":"https://d30mle0t4iy75h.cloudfront.net/websiteV2/images/menuItems/AfghaniTikkaBiryani.jpg",
      "typeid":2,
      "isCombo":0,
      "currentInventory":100,
      "categoryId":1,
      "categoryname":"Biryani",
      "subCategoryId":1,
      "sequenceInCategory":1
   },
   { 
      "isInventoryOperationEnable":1,
      "itemId":3,
      "name":"Chicken Tikka Biryani (Heavy Eater)",
      "posName":"Chicken Tikka Biryani (Heavy Eater)",
      "image":"https://d30mle0t4iy75h.cloudfront.net/websiteV2/images/menuItems/ChickenTikkaBiryani.jpg",
      "typeid":2,
      "isCombo":0,
      "currentInventory":100,
      "categoryId":1,
      "categoryname":"Biryani",
      "subCategoryId":1,
      "sequenceInCategory":14
   }
      ]

Но RobotFramework выдает ошибку как: - JsonPointerException: документ '' не поддерживает индексирование, должно быть отображение / последовательность или поддержка __getitem __

Сообщение об ошибке на RobotFramework

Пожалуйста, можетекто-нибудь помочь найти способ, как передать более 1 арг в этом случае

Спасибо

1 Ответ

1 голос
/ 09 ноября 2019
Create Session  Get_Inventory_Details   ${Base_URL}                 
${Headers}= Create Dictionary   Content-Type=application/json   Authorization=bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InByaXRpc3dhaW4iLCJpYXQiOjE1Njc1MTQ2NDd9.o3qTPbj2KH6AgHpIf1BLV5nOlGL-fR83wSGAYyuWsBQ              
${Response}=    Get Request Get_Inventory_Details   inventorybyOutlet/7 headers=${Headers}          
Log To Console  ${Response.status_code}                     
Log Many    ${Response.content}                     
${actual_response}= Convert To String   ${Response.status_code}                 
Should Be Equal ${actual_response}  200 
${response_content_json}=   To Json    ${Response.content}    #To Json is from RequestsLibrary
${quantity}=    Set Variable    ${response_content_json}[0][currentInventory]
Run Keyword If  ${quantity}>10  Log Threshold Condition Pass    ELSE    Log Threshold Condition Fail

В этом случае ${quantity} было 100.

Обратите внимание на две вещи:

  • после преобразования в JSON, значения переменных могут быть доступны одинаково dictionary переменные типа
  • To JSON ключевое слово от RequestsLibrary
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...