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函数递归和生成器
Jun 06 Python
Python 数据结构之队列的实现
Jan 22 Python
利用python画一颗心的方法示例
Jan 31 Python
django 创建过滤器的实例详解
Aug 14 Python
python中实现将多个print输出合成一个数组
Apr 19 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
pyqt 实现在Widgets中显示图片和文字的方法
Jun 13 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
python Tornado框架的使用示例
Oct 19 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中的观察者模式
2010/03/24 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
酒店管理自荐信
2013/10/23 职场文书
八一慰问活动方案
2014/02/07 职场文书
高中军训感言500字
2014/02/24 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
生活小常识广播稿
2014/09/16 职场文书
个人求职信格式范文
2015/03/20 职场文书
法律意见书范文
2015/05/20 职场文书
详解Python描述符的工作原理
2021/06/11 Python
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android