3 回答
TA贡献1802条经验 获得超4个赞
我认为只需要更改创建字典对象。您应该将键和值传递给它。参考链接BuildIn(创建字典)
*** Settings ***
Library RequestsLibrary
Library Collections
Library String
*** Variables ***
${headers} Create Dictionary Authorization=“Bearer abcde”
*** Test Cases ***
Make a simple REST API call
[Tags] API
Create Session my_json http://localhost:3000
Log ${headers}
${response} = Get Request my_json /posts headers=${headers}
Log ${response}
# Check the Response status
Should Be Equal As Strings ${response.status_code} 403
# ${response} = Get Request my_json /posts
${json} = Set Variable ${response.json()}
Log ${json}
Log len(${json})
Should Be Equal As Strings ${json['name']} rajesh
TA贡献1859条经验 获得超6个赞
问题来自您创建headers字典的方式 - 在套件文件的 Variables 部分中,不能使用关键字,它是纯粹的赋值。因此,根据您在那里定义变量的方式,“创建字典”是按字面意思理解的 - 它最终作为变量值的字符串的一部分。
在变量部分创建字典的语法是这样的:
*** Variables ***
&{headers} Authorization=Bearer abcde
注意变量是如何声明的——它的前缀不是通常的美元字符,而是一个与号 ( &);因此,您正在指示 Robotframework var 的值将是一个字典。
dict中的键值对用相等的char分隔,格式为the_key=the_value. 您不必将值放在引号中(单引号或双引号) - 相反,如果这样做,引号将作为值的一部分存储;例如,它们不是任何类型的分隔符。
最后,如果值是一个字符串并且需要在其中包含多个连续的空白字符,请使用系统变量${SPACE};例如:
*** Variables ***
&{my dict} myKey=text with ${SPACE} 3 spaces other=value
TA贡献1795条经验 获得超7个赞
我能够得到成功的响应,但应该不带双引号传递令牌。前任 :
${bearerToken}= Bearere sdkdjflk234jrlksdklflksf
添加回答
举报