Cookies Robot Framework RequestsLibrary-这个cookie会导致类型错误吗?

Cookies Robot Framework RequestsLibrary-这个cookie会导致类型错误吗?,cookies,python-requests,robotframework,Cookies,Python Requests,Robotframework,我有一个Robot框架测试套件,利用测试RESTful API的。测试非常有效。一个简单的示例调用: *** Test Cases *** Test API Create API Session ${resp} = Get Request api_session /foo/bar BlahBlah test the ${resp} etc. *** Keywords *** Create API Session ${headers_str}

我有一个Robot框架测试套件,利用测试RESTful API的。测试非常有效。一个简单的示例调用:

*** Test Cases ***
Test API
    Create API Session
    ${resp} =    Get Request    api_session    /foo/bar
    BlahBlah test the ${resp} etc.


*** Keywords ***
Create API Session
    ${headers_str} =    Evaluate   str('application/json')
    &{headers} =    Create Dictionary    Content-Type=${headers_str}
    Create Session    api_session    ${BASE_URL}    headers=${headers}    verify=True
现在,我需要开始添加cookies,以便对这个测试套件进行的所有调用进行codeception代码覆盖率跟踪。所以我修改了上面的工作代码,如下所示:

*** Test Cases ***
Test API
    Create API Session
    ${resp} =    Get Request    api_session    /foo/bar
    BlahBlah test the ${resp} etc.

*** Keywords ***
Create API Session
    ${headers_str} =    Evaluate   str('application/json')
    &{headers} =    Create Dictionary    Content-Type=${headers_str}
    ${cookies_str} =    Evaluate   str('{"CodeCoverage":"Test Name","CodeCoverage_Suite":null,"CodeCoverage_Config":null}')
    &{cookies} =    Create Dictionary    CODECEPTION_CODECOVERAGE=${cookies_str}
    Create Session    api_session    ${BASE_URL}    headers=${headers}    cookies=${cookies}   verify=True

但是现在,
testapi
测试在
Get Request
关键字处失败,出现了一个令人困惑的
TypeError:字符串索引必须是整数。这是怎么回事?我想我误解了我的cookie,但文档让我比开始时更困惑。

这不是对您的具体问题的回答,但它确实意味着您尝试的操作将无法工作,即使您的语法等正确无误。RequestsLibrary无法再处理Cookie。检查

具体而言:

# cant pass these into the Session anymore
    self.timeout = float(timeout) if timeout is not None else None
    self.cookies = cookies
    self.verify = verify

我一度让自己发疯,因为我需要传递的cookies来做一些事情,当我发现这条评论时,我差点把显示器扔出窗外。我通过推特联系了作者,但从未收到关于这是一个问题原因的回复。也许我自己也完全误解了这种情况,我只是把我正在做的事情当作POC扔掉了。

你确定请求不能处理cookies吗?我想所有的评论都是说它不能将cookies传递给会话。它仍然可以通过每个请求传递cookies。这就是为什么代码保存cookies(
self.cookies
),并在执行实际请求时使用它们的原因。不,我一点也不确定@BryanOakley,因此我建议我可能会误解一些事情,听起来像是从你的评论中听到的。在我的场景中,我需要在会议上传递cookies,所以我被打了个斯诺克。我记得在我翻阅源代码试图理解这一点时看到了这一点,但我想我会以这种方式发布这个问题,因为也许有人会知道,事实上,你可以将它传递给会话。我将尝试将cookies传递给各个电话,并将我的发现反馈给这个问题。那么,您目前的经验证实不可能传递给会话?祝你们个人电话好运,根据我对布莱恩回答/评论的经验,他通常是正确的。最后,我开始尝试一下。在向特定请求传递cookie时遇到了其他问题,但我认为一旦我弄明白了这一点,它就会起作用。不过,我会就此提出一个单独的问题。这是对这个问题的正确答案。谢谢,混蛋!