机器人框架请求库:设置会话cookie

时间:2017-08-18 00:43:47

标签: api python-requests robotframework

我正在尝试使用Robot Framework中的RequestsLibrary创建会话。第一个API调用是"身份验证步骤"。此步骤要求我为剩余的API调用存储cookie。通常,我会使用

curl -c cookie.txt -d 
"j_username=foo%40inq.com&j_password=pass123&submit=Login" https://api.company.com/j_spring_security_check

但据我了解,RequestsLibrary不支持curl命令?下面是我尝试执行的代码的示例

*** Settings ***
Documentation       API

Library     RequestsLibrary
Library     Collections
*** Variables ***
${headers}      Create Dictionary    Content-Type    application/json    Accept    application/json
*** Test Cases ***
Tester
Create Session    TC  https://api.company.com/j_spring_security_check?j_username=regression1@att&j_password=TCpass1234&submit=Login  ${headers}  cookies.txt

如果我将cookie参数保留为None,那么它是有效的,但是我无法运行测试的其余部分:

${result}=  Post Request       TC       https://api.company.com/engagementAPI/v1/agent/login?username=regression1@att&password=TCpass1234&output=json     headers = ${headers}

帖子有效,但我在Swagger UI中运行时没有得到所需的响应

由于

1 个答案:

答案 0 :(得分:1)

cookies参数需要将实际的cookie包含为字典,而不是文件名。

例如:

${cookies}=  Create Dictionary   foo=bar  
Create Session  session  ${url}  cookies=${cookies}