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实现dnspod自动更新dns解析的方法
Feb 14 Python
跟老齐学Python之有点简约的元组
Sep 24 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
pandas 选择某几列的方法
Jul 03 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
python实现逐个读取txt字符并修改
Dec 24 Python
python统计中文字符数量的两种方法
Jan 31 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Python 音频生成器的实现示例
Dec 24 Python
Python如何省略括号方法详解
Mar 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
用PHP动态创建Flash动画
2006/10/09 PHP
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
yii用户注册表单验证实例
2015/12/26 PHP
PHP钩子实现方法解析
2019/05/21 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
Python工程师面试题 与Python Web相关
2016/01/14 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python对csv文件追加写入列的方法
2019/08/01 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python实现指定ip端口扫描方式
2019/12/17 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
采购部经理岗位职责
2014/02/10 职场文书
年终工作总结范文2014
2014/11/27 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
论文致谢词范文
2015/05/14 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书