То, что вы хотите сделать, может быть сделано в Robot Framework, но если ваша реальная проблема более сложна, рассмотрите пользовательское ключевое слово Python. То, что ты можешь, не всегда означает, что ты должен.
В файле json ниже я удалил запятую после "accountId": "1234"
. Он загружает json из файла и затем преобразует его в объект (Dictionary / List / Dictionary), а затем циклически перебирает список, чтобы проверить под-словарь на наличие ключа accountId
. Подсчитывает количество раз, когда он его находит.
json.json
{"cardAccountList":[
{
"accountId": "1234"
},
{
"accountId": "1111"
}
]
}
И со следующим кодом робота:
*** Settings ***
Library OperatingSystem
Library Collections
*** Test Cases ***
TC
${json_string} Get File ./json.json
${json_object} evaluate json.loads('''${json_string}''') json
${count} Set Variable ${0}
${key_count} Get Length ${json_object["cardAccountList"]}
:FOR ${item} IN @{json_object["cardAccountList"]}
\ ${status} Run Keyword And Return Status
\ ... Dictionary Should Contain Key ${item} accountId
\
\ ${count} Set Variable If ${status} ${count+1} ${count}
Log To Console \nCount of accountId is: "${count}"
создает журнал консоли:
==============================================================================
TC
Count of accountId is: "2"
| PASS |
------------------------------------------------------------------------------
Folder.Json | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed