前言:

session:用requests.session()创建会话,可以将会话信息传递给其他接口

cookie:用RequestsCookieJar或者cookie字典传递cookie信息

fildder请求响应内容:

代码:

import  requests
from requests.cookies import RequestsCookieJar
#登录
#form表单形式的post请求,用data传参,Content-Type: application/x-www-form-urlencoded
payload={"username":"admin","password":"admin","validateCode":"","rememberMe":"false"}
s=requests.session()
response1=s.post("http://www.luckyframe.cn/login",data=payload)
jsseionid=response1.cookies['JSESSIONID']
#打印的是cookiejar对象
print(response1.cookies)
#打印的是具体cookie值
print(response1.cookies['JSESSIONID']) #1、不传cookie,直接发送其他请求
response2=requests.get('http://www.luckyframe.cn/testexecution/taskCaseExecute/getMainData.do?_=1592060167330')
#打印响应文本
print(response2.text) #2、登录后,s里继承了cookie信息,用s可以直接发送其他请求
response3=s.get('http://www.luckyframe.cn/testexecution/taskCaseExecute/getMainData.do?_=1592060167330')
#打印响应文本
print(response3.text) #3、用cookie传递登录会话信息
cookie={'JSESSIONID':jsseionid}
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
response5=requests.get('http://www.luckyframe.cn/testexecution/taskCaseExecute/getMainData.do?_=1592060167330',cookies=cookie,headers=header)
#打印响应文本
print(response5.text) #4、用RequestsCookieJar传递登录cookie信息
response6=requests.get('http://www.luckyframe.cn/testexecution/taskCaseExecute/getMainData.do?_=1592060167330',cookies=response1.cookies,headers=header)
#打印响应文本
print(response6.text) #5、用cookie传递登录会话信息
#创建RequestsCookieJar对象
jar=RequestsCookieJar()
#通过set方法添加cookie信息
jar.set('JSESSIONID',jsseionid) header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
response7=requests.get('http://www.luckyframe.cn/testexecution/taskCaseExecute/getMainData.do?_=1592060167330',cookies=jar,headers=header)
#打印响应文本
print(response7.text) #6、用cookie发送post请求
header1={'Content-Type':'application/x-www-form-urlencoded'}
response8=requests.post('http://www.luckyframe.cn/testmanagmt/projectPlan/list',cookies=cookie,headers=header1)
print(response8.text)

 运行结果:

D:\Python37\python.exe E:/PycharmProjects/home_UI/apistudy/testcookie.py
<RequestsCookieJar[<Cookie JSESSIONID=3c734cf5-bee0-4c75-87d0-a6bc85f77ed6 for www.luckyframe.cn/>]>
3c734cf5-bee0-4c75-87d0-a6bc85f77ed6
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> <title>LuckyFrame开源测试平台</title>
<meta name="keywords" content="开源测试工具,自动化测试平台,开源测试平台,自动化测试框架,luckyframe">
<meta name="description" content="LuckyFrame测试平台是一款开源的测试平台,最大的特点是全纬度覆盖了接口自动化、WEB UI自动化、APP自动化,并且支持分布式测试,测试全关键字驱动">
<link href="css/bootstrap.min.css" rel="stylesheet"/>
<link href="css/font-awesome.min.css" rel="stylesheet"/>
<link href="css/style.css" rel="stylesheet"/>
<link href="css/login.min.css" rel="stylesheet"/>
<link href="/ruoyi/css/ry-ui.css?v=3.2.0" rel="stylesheet"/>
<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;ie.html" />
<![endif]-->
<link rel="shortcut icon" href="favicon.ico"/>
<style type="text/css">label.error { position:inherit; }</style>
<script>
if(window.top!==window.self){window.top.location=window.location};
</script>
</head> <body class="signin"> <div class="signinpanel">
<div class="row" style="position:relative;">
<div class="logopanel m-b" style="text-align:center">
<h1><img alt="[ LuckyFrame ]" src="/indexlogo.png"></h1>
</div>
<div class="col-sm-5" style="position:absolute;margin:auto;left:0;right:0;">
<form id="signupForm">
<h4 class="no-margins">登录:</h4>
<input type="text" name="username" class="form-control uname" placeholder="用户名" />
<input type="password" name="password" class="form-control pword" placeholder="密码" />
<div class="row m-t">
<div class="col-xs-6">
<input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5">
</div>
<div class="col-xs-6">
<a href="javascript:void(0);" title="点击更换验证码">
<img src="captcha/captchaImage?type=math" class="imgcode" width="85%"/>
</a>
</div>
</div>
<div class="checkbox-custom">
<input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住我</label>
</div>
<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍后...">登录</button>
</form>
</div>
</div>
<div class="signup-footer">
<div class="pull-left" style="background-color:#00BFFF;margin-top:5px">
© 2019 All Rights Reserved. LuckyFrame 3.1.1<br>
</div>
</div>
</div>
<script> var ctx = "\/"; var captchaType = "math"; </script>
<!-- 全局js -->
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<!-- 验证插件 -->
<script src="/ajax/libs/validate/jquery.validate.min.js"></script>
<script src="/ajax/libs/validate/messages_zh.min.js"></script>
<script src="/ajax/libs/layer/layer.min.js"></script>
<script src="/ajax/libs/blockUI/jquery.blockUI.js"></script>
<script src="/ruoyi/js/ry-ui.js?v=3.2.0"></script>
<script src="/ruoyi/login.js"></script>
</body>
</html> {"caseadddata":["1","1"],"casedata":["0","0"],"taskdata":["20天0小时34分钟","1"],"logdata":["0","0"]}
{"caseadddata":["1","1"],"casedata":["0","0"],"taskdata":["20天0小时34分钟","1"],"logdata":["0","0"]}
{"caseadddata":["1","1"],"casedata":["0","0"],"taskdata":["20天0小时34分钟","1"],"logdata":["0","0"]}
{"caseadddata":["1","1"],"casedata":["0","0"],"taskdata":["20天0小时34分钟","1"],"logdata":["0","0"]}
{"total":1,"rows":[{"searchValue":null,"createBy":"admin","createTime":"2020-06-14 11:32:27","updateBy":"admin","updateTime":"2020-06-14 11:32:27","remark":null,"params":{},"planId":1,"planName":"迭代一","planCaseCount":0,"projectId":2,"project":{"searchValue":null,"createBy":null,"createTime":null,"updateBy":null,"updateTime":null,"remark":null,"params":{},"projectId":2,"projectName":"ICS","deptId":104,"projectSign":"ics","dept":null,"flag":false}}],"code":0} Process finished with exit code 0

  

requests接口自动化9-共享session和传递cookie的更多相关文章

  1. python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  2. python+requests接口自动化完整项目设计源码

    前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违反职业道德了,就算别人分享了,也只适用于本公司内部的业务. 所以用例的代码还是得自己去一个个写,我只能分享项目 ...

  3. python+requests接口自动化完整项目设计源码(一)

    原文地址https://www.cnblogs.com/yoyoketang/tag/python接口自动化/ 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址 ...

  4. python接口自动化4-绕过验证码登录(cookie)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  5. python接口自动化4-绕过验证码登录(cookie) (转载)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  6. python接口自动化4-绕过验证码登录(cookie)【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...

  7. session和cookie区别,多台WEB服务器如何共享session,禁用COOKIE后SESSION是否可用,为什么?

    答:session的运行机制: 用户A访问站点Y,如果站点Y指定了session_start();(以下假设session_start()总是存在)那么会产生一个session_id,这个sessio ...

  8. requests接口自动化4-登录后才能访问的get请求,需共享cookie

    登录后才能访问的get请求,需共享cookie fiddler里请求响应结果: 代码: import requests import json #form表单形式的post请求,用data传参,Con ...

  9. requests接口自动化8-传递数据为xml形式的post请求:data

    传递数据为xml形式的post请求 请求体内容: <?xml version=“1.0” encoding = “UTF-8”?> <COM> <REQ name=&qu ...

随机推荐

  1. 别人开发三年30k,而我才12K,看完他面试前狂刷的面试题,我惊了

    朋友做Java开发三年多的时间了,在老东家勤勤恳恳工作了三年多,工资也就是从刚开始的8K涨到了12K,天天给我吐槽他的工资低.2019年中下旬开始就一直在各种地方找资源,刷面试题,想要“骑驴找马”,所 ...

  2. (二)JPA实体类主键生成策略

    在JPA中,配置实体类的主键的生成策略使用 @GeneratedValue @Id @Column(name = "id") @GeneratedValue(strategy = ...

  3. 容器技术之Docker资源限制

    上一篇我们聊到了docker容器的单机编排工具docker-compose的简单使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13121678.html: ...

  4. Python基础002---基础知识

    一.标识符 标识符是自己定义的,是开发人员在程序中自己定义的一些符号和名称,如变量名.函数名等.在 Python 里,标识符由字母(区分大小写).数字.下划线组成,且数字不能开头.常用的命名方法有小驼 ...

  5. MongoDB——基本使用及集群搭建

    文章目录 什么是MongoDb? 基本概念 与关系型数据库的比较 Mongo的高效性 文件存储 基本使用 启动/连接服务 基础操作命令 高可用集群搭建 概念 环境准备 实践 应用场景 总结 什么是Mo ...

  6. 如何在VMware虚拟机中安装CentOS6.7系统(上篇)

    之前给大家分享了在VMware中如何创建CentOS虚拟机,今天给大家分享一下如何在虚拟机中安装CentOS系统,以CentOS6.7系统为例,其他的系统版本也可以参考该教程进行类似处理,具体的流程如 ...

  7. Spring中基于xml的AOP

    1.Aop 全程是Aspect Oriented Programming 即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的同一维护的一种技术.Aop是oop的延续,是软件开发中的 一个热点 ...

  8. WeChair项目Beta冲刺(10/10)

    团队项目进行情况 1.昨日进展    Beta冲刺第十天 昨日进展: 项目完工 2.今日安排 对小程序进行测试,同时对项目进行总结,并整理博客材料等 3.燃尽图 4.展示Git当日代码记录    详情 ...

  9. Centos7 GRE Tunnel

    一.关闭防火墙及selinux 二.CentOS7默认不加载gre内核模块,加载gre内核模块 # modprobe ip_gre   临时加载gre模块(重启后失效) # lsmod |grep g ...

  10. 如何在Linux下使用Tomcat部署Web应用(图文)

    学习Java必不可少的视同Tomcat,但是如果不会使用tomcat部署项目,那也是白扯,在这里教大家如果在Linux系统下视同Tomcat部署Web应用.   工具/原料   Apache-tomc ...