最近重新梳理python接口自动化测试,遇到了一个问题。
发送登录请求后,用requests.cookie获取不到cookie,如图:

#通过requests发送请求
res = requests.get(url=url,headers=headers)
print("获取状态码:",res.status_code)
print("获取headers:",res.headers)
# print("获取body:",res.text)
print(res.cookies)
结果:

直接拿res.cookie是获取不到的
需要通过创建session会话来进行获取
# 通过创建session会话请求后获取
session = requests.session()
session.get(url=url,headers=headers)
直接使用session.cookies获取的是这种:这种不利于提取cookie
print("直接获取cookie:",session.cookies,type(session.cookies))
# 结果:
<RequestsCookieJar[<Cookie userInfoCookie= for 192.168.2.102/>, <Cookie JSESSIONID=C5A2BC3120C529FF25F22EF046AD8DE6 for 192.168.2.102/recruit.students>]> <class 'requests.cookies.RequestsCookieJar'>
需要使用requests.utils.dict_from_cookiejar进行获取
cookie = requests.utils.dict_from_cookiejar(session.cookies)
print("通过utils.dict_from_cookiejar获取cookie:",cookie['JSESSIONID'])
# 结果
通过utils.dict_from_cookiejar获取cookie: C5A2BC3120C529FF25F22EF046AD8DE6
在Python接口自动化测试中,遇到使用requests库获取登录请求后的cookie时,直接通过`res.cookies`无法获取。解决方法是创建session会话,然后通过`session.cookies`获取。但直接获取得到的是RequestsCookieJar对象,需要使用`requests.utils.dict_from_cookiejar`转换为字典形式便于提取。本文详细介绍了这个问题及解决方案。
5757

被折叠的 条评论
为什么被折叠?



