Не найдено ни одного ключевого слова с именем «Получить значение Json» или какие-либо ключевые слова, которые я использую в HttpLibrary.HTTP в Robot Framework - PullRequest
0 голосов
/ 24 сентября 2019

Я использую Robotframework-httplibrary для автоматизации вызовов API, в этом случае я хочу получить значение токена, созданного методом POST.Так что я могу использовать его в методе PUT для изменения пароля.но, к сожалению, я обнаружил эту ошибку, что ключевые слова не найдены, хотя я уже объявил библиотеку.

Это быстрый пример

*** Settings ***
Library  HttpLibrary.HTTP
Library  Collections
Library  JSONLibrary
Library  SeleniumLibrary



*** Variables ***
${web_service}=  http://10.0.50.168:18000

*** Test Cases ***

Create Large JSON Document
    ${document}=  Catenate
    ...  {
    ...  "token" : "oPVo3b3NdkW8uDL2tiyZii"
    ...  }
    Should Be Valid JSON    ${document}
    ${result}=       Get Json Value  ${document}  token
    Should Be Equal  ${result}       "oPVo3b3NdkW8uDL2tiyZii"

1 Ответ

0 голосов
/ 25 сентября 2019

Вы установили python-3.x в качестве тега вопроса, поэтому я предполагаю, что вы используете Python 3.x на своем компьютере.Пакет HttpLibrary (robotframework-httplibrary) создан для Python 2.x, поэтому он не совместим с вашей версией.В этой библиотеке выполняется множество переименованных функций и обработка исключений старого синтаксиса, поэтому у вас нет возможности запустить ее с использованием Python 3.

Вы можете либо искать другой подход, либо отказаться от установки Python & Robot Framework вашей машины.в версии, совместимые с Python 2.X.

Я вижу, вы хотите позвонить Should Be Valid JSON и Get Json Value.Этого можно достичь и без HttpLibrary:

Вы можете использовать json библиотеки Python json.loads() для проверки JSON.Если это не действительно JSON, это вызовет исключение.

Вместо Get Json Value вы можете просто сохранить JSON в словарь и прочитать соответствующее поле.

Вот пример проверки формата JSON, выборки token из JSON и затемутверждая, что это как ожидалось:

*** Test Cases ***
Create Large JSON Document
    ${document}=  Catenate
    ...  {
    ...  "token" : "oPVo3b3NdkW8uDL2tiyZii"
    ...  }

    # Verify json is a valid format and set it to dictionary:
    &{JSON}=  Evaluate  json.loads('''${document}''')  json

    # Get token from JSON
    ${result}=  Set Variable  ${JSON['token']}
    Should Be Equal  ${result}       oPVo3b3NdkW8uDL2tiyZii
...