Robotframework 如何在RESTAPI中使用会话令牌
im尝试使用此代码,但无效我必须使用第一个关键字获取会话令牌,并在第二个关键字中使用会话令牌,但显示错误消息:AttributeError:'str'对象没有属性'items'Robotframework 如何在RESTAPI中使用会话令牌,robotframework,Robotframework,im尝试使用此代码,但无效我必须使用第一个关键字获取会话令牌,并在第二个关键字中使用会话令牌,但显示错误消息:AttributeError:'str'对象没有属性'items' Get SessionToken Create Session session https://url verify=True ${resp}= Get Request session uri?appToken=xxxxxx&us
Get SessionToken
Create Session session https://url verify=True
${resp}= Get Request session uri?appToken=xxxxxx&userId=xxxx&password=xxxx
Should Be Equal As Strings ${resp.status_code} 200
${json} = Set Variable ${resp.json()}
Dictionary Should Contain Key ${json}[0] sessionToken
${SessionToken}= Get From Dictionary ${json["result"]} sessionToken
[Return] ${SessionToken}
Check Transaction Detail MCM
${headers}= Set Variable Get SessionToken
Create Session session https://url verify=True
${resp}= Get Request session /token URI headers = ${headers}
Set Variable
关键字用于为变量分配静态(例如“预定义”)值。在编程语言中,这一行
${headers}= Set Variable Get SessionToken
相当于:
headers = "Get SessionToken"
变量${headers}
现在有一个字符串“Get SessionToken”作为值,而不管是否有同名的关键字(对于只是巧合的框架(事实上,框架并不关心或知道这种巧合))
如果要存储关键字的返回值Get SessionToken
,只需分配它:
${headers}= Get SessionToken
${headers}
现在将把${SessionToken}
的内容作为一个值
您可以更明确地使用此构造:
${headers}= Run Keyword Get SessionToken
,但这只是一种糟糕的风格(Run关键字
有非常可靠的用法,只是不适用于像这样的简单/琐碎的构造)
请记住
Get Request
关键字中的headers
参数需要一个字典,因此请确保最后出现的是这种类型的字典。这正是您所遇到的错误-由于您为参数指定了字符串值,它失败了,异常为它不是dict。(从技术上讲,它引发了一个异常,字符串对象没有
items()
方法-例如,关键字假定类型并尝试将其用作dict)请发布错误堆栈。@RussellB AttributeError:“str”对象没有属性“items”set variable
不会调用关键字,它只将变量设置为您给定的任何静态字符串。您的代码将${headers}
设置为字符串“Get SessionToken”。通过记录${headers}
的值,您可以轻松地看到这一点。