前言:

不管是在做接口自动化还是在做UI自动化,测试人员遇到的第一个问题都是卡在登录上。
那是因为在执行登录的时候,服务端会有一种叫做session的会话机制。
一个很简单的例子:
在做功能测试的时候,肯定会遇到一种测试场景,需要在没登录的时候进行一些普通操作,会提示“请先登录”
比如:我们在逛TB的时候,如果没有登录,那么当你搜索到一个商品,准备下单时候,是不是就会弹出一个登录框?
其实这就是利用到了session会话机制。
因为HTTP协议是无状态的,那么在下订单,加入购物车等场景时,服务器是不知道哪个用户在操作。
因此,服务器需要为特定用户创建特定会话,该会话用于识别用户并跟踪用户,以便知道下一个什么商品的订单,购物车里有些什么商品。

requests.session

python有一个非常强大的接口测试第三方库 -- requests
很多学习Python的同学们可能都知道requests库的用法,但是不知道的是还有另外一种用法:requests.session
session其实是一个会话类,requests的所有请求方法,底层都是调用的这个类的对象。
其他方法和session的区别在于:
直接使用requests调用请求方法发送请求,每次都会创建一个新的session(会话对象),所以没有之前请求的cookies信息
直接创建一个session对象来发请求,那么每次发请求用的都是这个会话对象,所有能够保存之前的会话信息(cookies数据)

代码如下:

session类

requests库

Python处理session最简单的方法的更多相关文章

  1. python 进程池的简单使用方法

    回到python,用一下python的进程池. 记得之前面试的时候,面试官问:你知道进程池的默认参数吗? 我没有回答上来,后来才知道,是有默认参数的.下面就看看它的默认参数 1. 不加参数 from ...

  2. Hibernate中Session的几个方法的简单说明

    Hibernate对普通JDBC的操作进行了轻量级的封装,使得开发人员可以利用Session对象以面向对象的思想来实现对关系数据库的操作. 一般通过Configuration对象读取相应的配置文件来创 ...

  3. Python模拟登录的几种方法

    目录 方法一:直接使用已知的cookie访问 方法二:模拟登录后再携带得到的cookie访问 方法三:模拟登录后用session保持登录状态 方法四:使用无头浏览器访问 正文 方法一:直接使用已知的c ...

  4. Python下载网页的几种方法

    get和post方式总结 get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据(只能是字符串,比如在 ...

  5. 使用Python解析JSON数据的基本方法

    这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下:     ----------------------------------- ...

  6. python 多线程就这么简单(续)

    之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...

  7. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

  8. 空间session失效的解决方法

    今天访问自己的网站的时候(by thinkphp),突然发现身份验证失效了,Session无法跨页,而且登陆的时候总是提示验证码错误(验证码也是通过Session传递的),才意识到可能是Session ...

  9. PHP session有效期session.gc_maxlifetime的设置方法

    PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适 ...

随机推荐

  1. MySQL批量导入Excel数据

    MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名 ...

  2. PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续

    2.PHP与Mysqli扩展,面向过程.对象 <?php $mysql_conf = array( 'host' => '127.0.0.1:3306', 'db' => 'test ...

  3. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_08-课程预览技术方案

    3.2.1 技术需求 课程详情页面是向用户展示课程信息的窗口,课程相当于网站的商品,本页面的访问量会非常大.此页面的内容设 计不仅要展示出课程核心重要的内容而且用户访问页面的速度要有保证,有统计显示打 ...

  4. jmeter 随机取一个值的方法

    1.添加用户自定义变量 在要用到随机值的地方写入 ${__RandomFromMultipleVars(1|2|0)} 例子: 效果:

  5. java写文件实现换行

    Java 写文件实现换行   第一种: 写入的内容中利用\r\n进行换行 File file = new File("D:/text"); try { if(!file.exist ...

  6. python基础之:九步认识装饰器

    step1. 先看个代码吧: def f(): ') f=lambda a:a +100 #覆盖上面的函数f print(f) #函数名指函数所在内存中的位置,入带后面括号表示执行函数 print(f ...

  7. Apache三种工作模式详解

    Apache HTTP服务器被设计为一个强大的.灵活的能够在多种平台以及不同环境下工作的服务器.这种模块化的设计就叫做“多进程处理模块”(Multi-Processing Module,MPM),也叫 ...

  8. 使用httpwebrequest Post数据到网站

    怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等.假如某个页面有个如下的表单(Form): <form nam ...

  9. 【c# 学习笔记】使用新成员隐藏基类成员

    如果想在派生类中定义与基类成员同名的成员,则可以使用new关键字把基类成员隐藏起来. 如果不适应new关键字,在派生类中定义一个与基类成员同名的成员,编译器将产生警告信息,如下代码演示: public ...

  10. 利用socket编程在ESP32上搭建一个TCP客户端

    通过之前http://www.cnblogs.com/noticeable/p/7636582.html中对socket的编程,已经可以知道如何通过socket编程搭建服务器和客户端了,现在,就在ES ...