Python 没有名称为';获取Json值';在Robot Framework的HttpLibrary.HTTP中发现错误或我使用的任何关键字
我使用Robotframework httplibrary自动化API调用,在本例中,我希望获得POST方法生成的令牌的值。这样我就可以在PUT方法上使用它来更改密码。但不幸的是,我遇到了这个错误,即使我已经声明了库,也找不到关键字 这是一个简单的例子Python 没有名称为';获取Json值';在Robot Framework的HttpLibrary.HTTP中发现错误或我使用的任何关键字,python,python-3.x,api,robotframework,web-api-testing,Python,Python 3.x,Api,Robotframework,Web Api Testing,我使用Robotframework httplibrary自动化API调用,在本例中,我希望获得POST方法生成的令牌的值。这样我就可以在PUT方法上使用它来更改密码。但不幸的是,我遇到了这个错误,即使我已经声明了库,也找不到关键字 这是一个简单的例子 *** Settings *** Library HttpLibrary.HTTP Library Collections Library JSONLibrary Library SeleniumLibrary *** Variab
*** 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"
您已将
python-3.x
设置为问号,因此我假设您正在计算机上运行python 3.x。HttpLibrary
(robotframeworkhttplibrary
包)是为Python 2.x制作的,因此它与您的版本不兼容。该库中有许多重命名的函数和旧语法异常处理,因此您无法使用Python 3运行它
您可以寻求一种不同的方法,或者将机器上的Python&Robot框架安装降级为符合Python2.X的版本
我知道您想要调用的应该是有效的JSON
和获取JSON值
。这也可以在不使用HttpLibrary
的情况下实现:
您可以使用Python的json
库的json.loads()
来验证json。如果它不是有效的json,它将引发异常
您可以将Json存储到字典中并读取相应字段,而不是获取Json值
下面是一个验证JSON格式的示例,从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
你能用显示错误的执行日志编辑这个问题吗?你确定你在导入时没有收到错误吗。实际上,只有两种可能的答案:导入时出错,或者库确实没有具有该名称的关键字。