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
添加回答
舉報