目录
1、原由
在做接口测试时,在浏览器F12开发者工具里看到request headers,如下图
copy出来的header数据是是一个表单格式的数据,复制出来属于字段串,不是json格式,
Python的requests 方法使用的headers参数,是Python的Json格式,也就是字典(dict)格式,
为什么要写这个文章呢,因为我们做自动化框架时,为了方便使用,会用excel录入接口的url,header与body
这里header为了简单便支持在F12里直接复制出来那也表单格式的数据,如下图
2、分析
编写一段读取excel的代码,使用openpyxl来写,这里留给大家去研究,然后通过dubug发现,通过openpyxl取出headers的格式是这样的
'Access-Control-Allow-Credentials: true\nAccess-Control-Allow-Origin: http://test-hcz-static.pingan.com.cn\naccessToken: 8b1f056249134c4f9fb7b573b25ce08c'
每一项之间是以\n换行符分割,而每项的键与值之前以:冒号分割。
所以先通过换行符 \n 拆分请求头的各项,再将各项以冒号分割key与value,最后将key,value存放在字典中,
这个字典就是requests请求所需要的headers了。
3、代码实现
具体代码如下:
def format_headers(param):
"""
格式化请求头
:param param:excel里读出出来的header,是从浏览器f12里直接copy的
:return:headers
"""
if param is None:
return False, 'Headers为空'
list_header = param.split('\n')
headers = {}
for li in list_header:
buff = li.split(':')
try:
headers[buff[0]] = buff[1]
except IndexError:
return False, 'Headers格式不对'
return True, headers
然后使用这一段代码调试上面的代码
header = 'Access-Control-Allow-Credentials: true\nAccess-Control-Allow-Origin: http://test-hcz-static.pingan.com.cn\naccessToken: 8b1f056249134c4f9fb7b573b25ce08c'
_isOK, headers = format_headers(header)
print(headers, type(headers))
查看调试结果
接口自动化请求头格式化小技巧分享完毕,
希望来个一键三连哦