#robotframework #rpa
#json #ключевое слово #каркас робота
Вопрос:
Я пишу тестовый пример в robot framework. Я получаю ответ в приведенной ниже строке json:
{"responseTimeStamp":"1970-01-01T05:30:00",
"statusCode":"200",
"statusMsg":"200",
"_object":{"id":"TS82",
"name":"newgroup",
"desc":"ttesteste",
"parentGroups":[],
"childGroups":[],
"devices":null,
"mos":null,
"groupConfigRules" {
"version":null,
"ruleContents":null
},
"applications":null,"type":0
}
}
Исходя из этого, я хочу взять «_object», используя:
${reqresstr} = ${response['_object']}
… но я получаю сообщение об ошибке «Нет ключевого слова с именем ‘=’ найдено» ошибка
Если я попробую сделать следующее:
${reqresstr}= ${response['_object']}
… Я получаю сообщение об ошибке «Имя ключевого слова не может быть пустым». Я попытался удалить ‘=’, но все равно получаю ту же ошибку.
Как я могу извлечь ‘_object’ из этой строки json?
Ответ №1:
При использовании «=» для присвоения переменной в формате, разделенном пробелами, вы должны убедиться, что перед «=» стоит не более одного пробела. Ваш первый пример показывает, что у вас есть более одного пробела по обе стороны от «=». У вас должен быть только один пробел перед =
и два или более после, иначе робот подумает, что пробелы являются разделителем между ключевым словом и аргументом.
Для ошибки «ключевое слово не должно быть пустым» первая ячейка после имени переменной должна быть ключевым словом. В отличие от традиционных языков программирования, вы не можете напрямую присвоить строку переменной.
Чтобы присвоить переменной значение строки, вам необходимо использовать ключевое слово Set Variable (или один из вариантов, например Set Test Variable ). Например:
${reqresstr}= Set variable ${response['_object']}
Ответ №2:
${reqresstr}= '${response["_object"]}'
заключите его в кавычки и два пробела после =
Ответ №3:
В вашей команде есть синтаксическая ошибка. Убедитесь , что между буквами и есть пробел ${reqresstr}
=
.
Используя ваш пример выше:
${reqresstr} = ${response['_object']}
Комментарии:
1. этот ответ не совсем корректен. Проблема не в недостатке пробела, проблема в том, что перед
=
. Там может быть ноль или один, но не два или больше.