Python处理session最简单的方法

前言:

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

requests.session

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

代码如下:

session类

requests库

原文地址:https://www.cnblogs.com/zymnstlm/p/11328362.html

时间: 2024-11-06 07:21:19

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

python 进程池的简单使用方法

回到python,用一下python的进程池. 记得之前面试的时候,面试官问:你知道进程池的默认参数吗? 我没有回答上来,后来才知道,是有默认参数的.下面就看看它的默认参数 1. 不加参数 from multiprocessing.pool import Pool from time import sleep def fun(a): sleep(5) print(a) if __name__ == '__main__': p = Pool() # 这里不加参数,但是进程池的默认大小,等于电脑CP

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

Hibernate对普通JDBC的操作进行了轻量级的封装,使得开发人员可以利用Session对象以面向对象的思想来实现对关系数据库的操作. 一般通过Configuration对象读取相应的配置文件来创建SessionFactory,然后通过SessionFactory对象获取Session对象,获取Session对象之后,我们就可以相关数据的操作了. 下面来介绍一下Session对象的几种方法: 1.Session.save() Session.save(Object obj):把瞬时状态对象o

python学习之最简单的用户注册及登录验证小程序

文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 http://www.iwangzheng.com 正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底. 有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号 mysql> show create table user; mysql> alter table user add sal

python操作日期和时间的方法

经常获得了一个用户提交的当前日期,我们需要以这个日期为依据返回它的前一天.后一天的日期或者转换操作等.用Python可以非常简单的解决这些关于日期计算的问题. 不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法. 1.将字符串的时间转换为时间戳 方法: a = "2013-10-10 23:40:00" #将其转换为时间数组 import time timeArray 

研磨设计模式解析及python代码实现——(一)简单工厂模式

最近在学设计模式,正巧书之前学了些python,但用的还不是很成熟.<研磨设计模式>书上只给了java代码,本着以练手为目标,我照着书上打了一遍java代码,在仔细体会其思想后,将其写成了python的代码.有不对的地方希望各位批评指正~ 具体原理不多做介绍,具体可以参考http://chjavach.iteye.com的博客,或者<研磨设计模式>的书. 一.背景介绍 接口思想: 众所周知,面向对象语言最大的特点便是封装,继承,多态这三个概念.而像Java等面向对象语言最核心的思想

python常见异常分类与处理方法

Python常见异常类型大概分为以下类: 1.AssertionError:当assert断言条件为假的时候抛出的异常 2.AttributeError:当访问的对象属性不存在的时候抛出的异常 3.IndexError:超出对象索引的范围时抛出的异常 4.KeyError:在字典中查找一个不存在的key抛出的异常 5.NameError:访问一个不存在的变量时抛出的异常 6.OSError:操作系统产生的异常 7.SyntaxError:语法错误时会抛出此异常 8.TypeError:类型错误,

python 常库介绍及安装方法

文大赛,秀绝招,赢无人机! python 常库介绍及安装方法 标签: PYTHON库 2016-10-13 15:32 798人阅读 评论(0) 收藏 举报  分类: 其他(33)  bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包My

session设置过期的方法(转载)

这篇文章主要介绍了php中实现精确设置session过期时间的方法,需要的朋友可以参考下 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默认24分钟) 这里你可以随便设置一下过期时间.但是有人说设置以后,好象不起作用! 其实不是不起作用,而是因为系统默认: ? 1 2 session.gc

python下载文件的三种方法

Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法requests. 下面来看看三种方法是如何来下载zip文件的:方法一: import urllib import urllib2 import requests print "downloading with urllib" url = 'http://***/test/demo.zip