最近重新梳理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