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编写基于DHT协议的BT资源爬虫
Mar 19 Python
Python数据类型详解(二)列表
May 08 Python
Python探索之创建二叉树
Oct 25 Python
Python内存读写操作示例
Jul 18 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python3+selenium自动化测试框架详解
Mar 17 Python
python爬虫增加访问量的方法
Aug 22 Python
Python FTP文件定时自动下载实现过程解析
Nov 12 Python
浅谈Python中re.match()和re.search()的使用及区别
Apr 14 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 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 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python赋值语句后逗号的作用分析
2015/06/08 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
Python基础教程之异常详解
2019/01/10 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
python安装scipy的步骤解析
2019/09/28 Python
python属于软件吗
2020/06/18 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
教师节商场活动方案
2014/02/13 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
孙振耀退休感言
2015/08/01 职场文书