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 相关文章推荐
Django框架下在视图中使用模版的方法
Jul 16 Python
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 Python
Django返回json数据用法示例
Sep 18 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
python-视频分帧&多帧合成视频实例
Dec 10 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Python Numpy库常见用法入门教程
Jan 16 Python
常用的10个Python实用小技巧
Aug 10 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
Python学习之异常中的finally使用详解
Mar 16 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
PHP中动态HTML的输出技术
2006/10/09 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
python 生成图形验证码的方法示例
2018/11/11 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
python 8种必备的gui库
2020/08/27 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
几个Shell Script面试题
2012/08/31 面试题
教师见习期自我鉴定
2014/04/28 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS
Python学习之时间包使用教程详解
2022/03/21 Python