如何在机器人框架HTTP请求库

时间:2015-05-06 11:47:56

标签: python robotframework

我在this github link提供的Robot框架中使用请求库。该文档暗示如果可以通过CreateSession <url> headers={'header1':'value1'} ....发送自定义标头 但是,当我这样做时,我得到一个错误&#34; ValueError:需要多于1个值才能解压&#34;

这有效

CreateSession SendCustomHeader http://myhost.com  verify=False 

这不是

CreateSession SendCustomHeader http://myhost.com headers={'header1':'value1'} verify=False

我试过各种各样的标题组合=&#39;标题1&#39;或{&#39; header1&#39;:&#39; value1&#39;}或&#39; header1&#39;:&#39; value1&#39;同样的错误

请求库代码RequestsKeywords.py

中似乎没有错误
"        self.builtin.log('Creating session: %s' % alias, 'DEBUG')
        s = session = requests.Session()
        s.headers.update(headers)
"

我不确定错误的来源,因此无法修复

任何有关排除故障的指示都表示赞赏

2 个答案:

答案 0 :(得分:3)

你没有传递字典,你传递了一个看起来像字典的字符串。解决方案是创建一个合适的字典并将其传入。为此,Robot有一个Create Dictionary关键字。

*** Settings ***
| Library | Collections

*** Test Cases ***
| Example
| | ${headers}= | Create dictionary
| | ... | header1 | value1
| | ... | header2 | value2
| | CreateSession | SendCustomHeader | http://myhost.com  
| | ... | header=${headers} | verify=False 

答案 1 :(得分:-4)

根据Requests documentation,您可以将标题添加到Session对象中:

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})