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