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中文件I/O高效操作处理的技巧分享
Feb 04 Python
python中关于for循环的碎碎念
Jun 30 Python
python距离测量的方法
Mar 06 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
Django 开发环境配置过程详解
Jul 18 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
Python绘制动态水球图过程详解
Jun 03 Python
序列化Python对象的方法
Aug 01 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
Python实现微信表情包炸群功能
Jan 28 Python
Python基本知识点总结
Apr 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 采集书并合成txt格式的实现代码
2009/03/01 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
php实现文件下载更能介绍
2012/11/23 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
JavaScript中数组常见操作技巧
2017/09/01 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
python关键字and和or用法实例
2015/05/28 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
宝信软件JAVA工程师面试经历
2012/08/19 面试题
转预备党员政审材料
2014/02/06 职场文书
护士自我鉴定总结
2014/03/24 职场文书
难忘的一天教学反思
2014/04/30 职场文书
竞聘上岗演讲
2014/05/19 职场文书
防灾减灾活动总结
2014/08/30 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
详解MySQL的半同步
2021/04/22 MySQL
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers