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 流程控制实例代码
Sep 25 Python
python错误处理详解
Sep 28 Python
初步探究Python程序的执行原理
Apr 11 Python
python实现在字符串中查找子字符串的方法
Jul 11 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
django中send_mail功能实现详解
Feb 06 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
python调用staf自动化框架的方法
Dec 26 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
numpy中的ndarray方法和属性详解
May 27 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
用ldap作为django后端用户登录验证的实现
Dec 07 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开发文档 会员收费1期
2012/08/14 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
python中反射用法实例
2015/03/27 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
海淘母婴商城:国际妈咪
2016/07/23 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
大学生作弊检讨书
2014/02/19 职场文书
给老师的一封建议书
2014/03/13 职场文书
材料员岗位职责范本
2015/04/11 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
python基础之文件操作
2021/10/24 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers
Mysql如何查看是否使用到索引
2022/12/24 MySQL