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网站验证码识别
Jan 25 Python
Python正确重载运算符的方法示例详解
Aug 27 Python
你真的了解Python的random模块吗?
Dec 12 Python
python3解析库pyquery的深入讲解
Jun 26 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
Python实现Selenium自动化Page模式
Jul 14 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
Python面向对象实现方法总结
Aug 12 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文章按日期(月日)SQL归档语句
2012/11/29 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
可输入的下拉框
2006/06/19 Javascript
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
Prototype RegExp对象 学习
2009/07/19 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python获取当前日期和时间的方法
2015/04/30 Python
Python实现多属性排序的方法
2018/12/05 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
python脚本后台执行方式
2019/12/21 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
个人安全生产责任书
2014/07/28 职场文书
授权委托书
2014/07/31 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript