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常见排序算法基础教程
Apr 13 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
python web框架中实现原生分页
Sep 08 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
python 生成任意形状的凸包图代码
Apr 16 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
Oct 30 Python
python实现A*寻路算法
Jun 13 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
mac下多个php版本快速切换的方法
2016/10/09 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
PHP 实现缩略图
2021/03/09 PHP
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
软件设计的目标是什么
2016/12/04 面试题
销售会计工作职责
2013/12/02 职场文书
跟单文员岗位职责
2014/01/03 职场文书
给领导的致歉信范文
2014/01/13 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
捐书活动总结
2014/05/04 职场文书