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中while循环语句用法简单实例
May 07 Python
django实现前后台交互实例
Aug 07 Python
Python读取word文本操作详解
Jan 22 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
python如何爬取个性签名
Jun 19 Python
django框架auth模块用法实例详解
Dec 10 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
浅谈python出错时traceback的解读
Jul 15 Python
python 基于opencv实现高斯平滑
Dec 18 Python
Django+Celery实现定时任务的示例
Jun 23 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
numpy数组广播的机制
2019/07/12 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
python热力图实现简单方法
2021/01/29 Python
python实现按日期归档文件
2021/01/30 Python
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
《童年》教学反思
2014/02/18 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
单位单身证明样本
2014/10/11 职场文书
公务员考察材料
2014/12/23 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
小学运动会报道稿
2015/07/22 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
Golang 切片(Slice)实现增删改查
2022/04/22 Golang
springboot实现string转json json里面带数组
2022/06/16 Java/Android
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript