Python 保持登录状态进行接口测试的方法示例


Posted in Python onAugust 06, 2019

记录三种添加cookie保持接口登录状态的方法,方便自己回顾。

1.简单粗暴式。

此方法比较小白,前提是已经通过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()

2.从登录接口获取

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,以供后续接口使用。

3.使用会话对象保持登录---摘自网络

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 相关文章推荐
python 采集中文乱码问题的完美解决方法
Sep 27 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
python 列表删除所有指定元素的方法
Apr 19 Python
Django框架实现的简单分页功能示例
Dec 04 Python
Python实现的爬取小说爬虫功能示例
Mar 30 Python
Python求离散序列导数的示例
Jul 10 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
python tqdm实现进度条的示例代码
Nov 10 Python
python爬取2021猫眼票房字体加密实例
Feb 19 Python
k-means & DBSCAN 总结
Apr 27 Python
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Apr 21 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 #Python
django基于存储在前端的token用户认证解析
Aug 06 #Python
django基于cors解决跨域请求问题详解
Aug 06 #Python
django组合搜索实现过程详解(附代码)
Aug 06 #Python
使用Python自动生成HTML的方法示例
Aug 06 #Python
Django RBAC权限管理设计过程详解
Aug 06 #Python
python虚拟环境完美部署教程
Aug 06 #Python
You might like
PHP4实际应用经验篇(6)
2006/10/09 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
Python对列表的操作知识点详解
2019/08/20 Python
Python实现结构体代码实例
2020/02/10 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
python中pickle模块浅析
2020/12/29 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
计算机网络毕业生自荐信
2013/10/01 职场文书
注塑工厂厂长岗位职责
2013/12/02 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书