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实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
Python中的super()方法使用简介
Aug 14 Python
python文件操作相关知识点总结整理
Feb 22 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
Python中交换两个元素的实现方法
Jun 29 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
Python实现Singleton模式的方式详解
Aug 08 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
pycharm中leetcode插件使用图文详解
Dec 07 Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
jquery JSON的解析方式
2009/07/25 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
新员工培训个人的自我评价
2013/10/09 职场文书
投标邀请书范文
2014/01/31 职场文书
关于期中考试的反思
2014/02/02 职场文书
消防安全员岗位职责
2014/03/10 职场文书
升国旗仪式主持词
2014/03/19 职场文书
房屋过户委托书范本
2014/10/07 职场文书
会计求职简历自我评价
2015/03/10 职场文书
考试没考好检讨书
2015/05/06 职场文书
银行工作心得体会范文
2016/01/23 职场文书
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫