代码之家  ›  专栏  ›  技术社区  ›  raju

在robot框架中添加授权头

  •  1
  • raju  · 技术社区  · 6 年前

    *** 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
    

    我发现了这个错误日志.html

    给定的 alias

    开始/结束/经过时间:20181209 18:43:04.159/20181209 18:43:04.175/ 00:00:00.016 18:43:04.175失败AttributeError:“str”对象没有 属性“items”

    2 回复  |  直到 6 年前
        1
  •  4
  •   Yash Jagdale    6 年前

    我认为只有createdictionary对象需要更改。你应该把密钥和值传递给它。 参考链接 BuildIn(create Dictionary)

    *** 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
    
        2
  •  0
  •   Todor Minakov    6 年前

    headers 字典-在一个套件文件的变量部分不能使用关键字,这是纯粹的赋值。因此,按照您在那里定义变量的方式,“Create Dictionary”是按字面意思理解的——它最终成为变量值字符串的一部分。

    在Variables部分创建dict的语法如下:

    *** Variables ***
    &{headers}       Authorization=Bearer abcde
    

    & );因此,您指示Robotframework var的值将是一个字典。
    dict中的键值对由相等字符分隔,格式为 the_key=the_value . 您不必将值放在引号中(单引号或双引号)-相反,如果这样做,引号将作为值的一部分存储;例如,它们是 任何类型的分离器。
    ${SPACE}

    *** Variables ***
    &{my dict}       myKey=text with ${SPACE} 3 spaces   other=value
    
        3
  •  0
  •   Ruli    4 年前

    我能够得到成功的响应,但是令牌应该不带双引号地传递。前任:

    ${bearerToken}=  Bearere sdkdjflk234jrlksdklflksf