Python接口测试中保持登录状态的三种实现方式

闻溪
闻溪
发布时间:2026-10-13 | 4人浏览过
原创

本文总结了在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)

以上内容为本文的全部总结,希望能为读者的学习带来帮助,同时也欢迎大家继续支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表