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类定义的讲解
Nov 01 Python
深入理解Python 代码优化详解
Oct 27 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
Python调用系统底层API播放wav文件的方法
Aug 11 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
Django模型中字段属性choice使用说明
Mar 30 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
Python更换pip源方法过程解析
May 19 Python
python 利用toapi库自动生成api
Oct 19 Python
Python基本数据类型之字符串str
Jul 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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
深入php多态的实现详解
2013/06/09 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
Python作用域与名字空间原理详解
2020/03/21 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
给民警的表扬信
2014/01/08 职场文书
高校十八大报告感想
2014/01/27 职场文书
法律进社区实施方案
2014/03/21 职场文书
公开承诺书格式
2014/05/21 职场文书
英语教师自荐信
2014/05/26 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
基于Python实现射击小游戏的制作
2022/04/06 Python