Robotframework 如何在robot框架库中使用承载授权

Robotframework 如何在robot框架库中使用承载授权,robotframework,web-api-testing,Robotframework,Web Api Testing,我正在尝试使用robot框架的requestlibary使用承载授权。 注: ${tokenval}正在从另一个关键字获取值。 ${Body}值声明为变量 *** Test Cases *** Createnew ${tokenval}= Get Token Client Credentials ${token1}= Catenate bearer ${SPACE} ${tokenval} ${headers} content

我正在尝试使用robot框架的requestlibary使用承载授权。 注: ${tokenval}正在从另一个关键字获取值。 ${Body}值声明为变量

*** Test Cases ***
    Createnew
    ${tokenval}=     Get Token Client Credentials
    ${token1}=       Catenate  bearer  ${SPACE}  ${tokenval}
    ${headers}       content-type=application/json   Authorization=${token1}
    Create Session   apitest    https://testxxapi.com    ${headers}
    ${response}=     POST On Session   apitest   /deals/new   ${Body}
    ${resDict}=      convert to dictionary   ${response.json()}
    log              ${resDict}
但是我得到了HTTPError:403客户端错误。
同样的请求与邮递员中的持票人授权相同。

您的代码有一个问题,您最好改变一个想法

关键字将其参数组合在一个字符串中,使用(默认情况下)“空格”作为分隔符。 因此,在这一呼吁之后:

${token1}=       Catenate  bearer  ${SPACE}  ${tokenval}
,您得到的值是\u令牌的
承载符
-3个空格b/n这两个单词。删除第二个参数,或者直接使用

${token1}=       Set Variable    Bearer ${tokenval}


另一个潜在的问题是“Bearer”的大小写-它应该不区分大小写,但一些Oauth 2.0提供商多年前就出现了错误,他们希望它使用大写字母。

感谢您的回复。这确实有助于解决问题。