Python接口测试中保持登录状态的三种实现方式
本文总结了在Python接口测试中保持登录状态的三种常用方法。第一种为手动注入已获取的Cookie,适用于已知凭证的场景;第二种通过调用登录接口并从响应对象中提取Cookies供后续请求使用;第三种利用requests.Session()实例自动管理Cookie,实现跨请求的状态保持。这三种方式各有适用场景,可根据实际需求选择。
本文整理了在Python接口测试中维持登录状态的三种常见实现方式,旨在为后续回顾与查阅提供便利。
直接注入Cookie方式
第一种方法:直接注入Cookie。
该方式较为直观,但前提是通过Fiddler等抓包工具预先获取了有效的Cookie值,随后将其直接传入请求中。
import requests
trainsUrl ='http://XXX.com/trains'
headers = {
"Content-Type":"application/json;charset=UTF-8",
}
cookies = {
"XXXthor":"XXXXXX105a42"
}
prames = {
'depId':'1',
'arrId':'2',
'goDate':'XXXX'
}
res = requests.get(url=trainsUrl, cookies=cookies, params=prames, headers=headers).json()
从登录接口响应获取Cookie
第二种方法:从登录接口响应中获取。
import requests
loginUrl ="http://XXX.com/login"
data1 = {
"userName":"157XXXX",
"userPwd":"XXXX"
}
headers = {
"Content-Type":"application/json;charset=UTF-8"
}
#运行登录接口
loginRes = requests.post(url=loginUrl, json=data1, headers=headers)
trainsUrl ='http://XXX.com/trains'
parames = {
'depId':'1',
'arrId':'2',
'goDate':'1538100286000'
}
#运行trainsUrl接口时,从loginRes中获取cookies
res = requests.get(url=trainsUrl, params=parames, cookies=loginRes.cookies).json()
此流程首先执行登录接口请求,接着从登录响应对象(loginRes)中提取Cookies,并将这些Cookie传递给后续需要登录态的接口调用。
使用Session会话对象保持状态
第三种方法:利用会话对象(Session)维持登录状态——参考网络资料。
import requests
# Session 会话对象
# 会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie
# 会话对象具有主要的 Requests API 的所有方法。你可以当成 Request去使用
sessionRequest = requests.session() #实例化会话对象
loginUrl ="http://XXX.com/login"
data = {
"userName":"157XXXX",
"userPwd":"XXX"
}
headers = {
"Content-Type":"application/json;charset=UTF-8"
}
#第二次请求的url
trainsUrl ='http://XXX/trains'
parames = {
'depId':'1',
'arrId':'2',
'goDate':'XXXXX'
}
#登录
resp = sessionRequest.post(url=loginUrl , json=data, headers=headers)
#请求trains接口
trainsResp = sessionRequest.get(url=trainsUrl, params=parames)
以上内容为本文的全部总结,希望能为读者的学习带来帮助,同时也欢迎大家继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









