在Robot Framework中使用标头请求库的“获取请求”关键字

时间:2016-11-29 11:50:18

标签: robotframework

我想使用请求库测试API。

我的代码如下:

*** Settings ***
Documentation     Read API Testcase
Library           RequestsLibrary

*** Variables ***
${headers}        {'content-type': 'application/json', 'authorizationFlag':'N'}

*** Test Cases ***
Read API
    Create Session    CLM    http://172.20.33.224:8080/clm-reg/rest/dataservice/1/CLM/1
    ${resp}    Get Request    CLM    /RegistrationRequestDetails/json/583d8b14498e021b2f93a773    headers = ${headers} 
    Log to console    ${resp}

我收到错误:

AttributeError: 'unicode' object has no attribute 'items'

我发现了正在传递的标题问题。

当我通过互联网搜索时,我得到了传递标题值的方式是正确的。

请任何人帮助我。

由于 Sarada

3 个答案:

答案 0 :(得分:2)

我已将您的标题行更改为应该起作用的内容。如果您取得任何成功或者您遇到的其他问题,请告诉我们。

*** Variables ***
${headers}       Create Dictionary    Content-Type    application/json    authorisationFlag    N 

答案 1 :(得分:1)

问题是你的${headers} var只是一个字符串,而不是字典。 JSON就是那么棘手。您可以通过多种方式在RF中创建字典。

  • RF的Create Dictionary关键字
  • Python的json.loads(str)作为lib调用
  • RF的Evaluate关键字......

答案 2 :(得分:0)

您可以使用内置变量字典类型,如下所示:

    Set Test Variable    &{HEADERS}       Content-Type=application/json    authorisationFlag=N    Accept=*/*    Cache-Control=no-cache

然后将其称为变量,该变量作为dict散布在标头变量上:

    ${resp}    Post Request   api-encoder    /api-token-auth/    data=${DATA}    headers=${HEADERS}