Requests库
能够使用Requests库发送get/post/put/delete请求,获取响应状态码、数据
能够使用UnitTest管理测试用例
简介与安装
Requests库是Python编写的,基于urllib的HTTP库,使用方便。
安装:pip install requests
镜像安装:pip install requests -i https://pypi.douban.com/simple/
验证:pip show requests
获取指定响应数据
获取URL:resp.url
获取 响应状态码:resp.status_code
获取 Cookie:resp.cookies
获取 响应头:resp.headers
获取 响应体:
文本格式:resp.text
json格式:resp.json()
设置http请求语法
Get请求 + 请求参数:params
Post请求 + json参数:headers、json
【发送put、delete请求】修改员工信息、删除员工信息
Post请求 + 表单参数—data、headers
Cookie
简介
在浏览器端存储用户的信息。
特性:
- cookie用于存储用户临时的不敏感信息。
- cookie位于浏览器(客户端)端。默认大小4k(可以调整)
- cookie中的数据,可以随意被访问,没有安全性可言。
- cookie中存储的数据类型,受浏览器限制。
Cookie + Session 认证方式
在计算机中,认证用户身份的方式有多种!课程中接触2种:
ihrm项目:token认证。
tpshop项目:cookie+Session认证。
- 用户登录:首先用户进行登录操作,用户在登录页面输入用户名和密码,并发送给服务端,服务端验证通过后会生成一份保存用户相关信息的Session数据,同时生成一个对应标识(Session_ID)并写入用户浏览器中的cookie。
- 请求验证:当用户发请求时会自动携带包含Session_ID的Cookie,然后服务端从Cookie获取Session_ID并验证Session数据是否存在。
- 认证通过:如果Session数据存在且有效,则服务端认为用户已登录并允许访问请求的资源。
- 认证失败:如果Session不存在或已过期,服务端会重定向到登录页面。
- 用户注销:如果用户选择注销,服务端将销毁当前Session,并从Cookie中删除Session ID。
Cookie-Session模式依赖于客户端保存Cookie,并且在服务端存储用户的Session数据。
案例:TPshop商城:登录,查看“我的订单”
Session
简介
也叫会话。通常出现在网络通信中,从客户端借助访问终端登录上服务器,直到“退出登录”所产生的通信数据,保存在会话中。
特性:
- Session用于存储用户的信息。
- Session位于服务器端。大小直接使用服务器存储空间。
- Session中的数据,不能随意被访问,安全性较高。
- Session中存储的数据类型,受服务器影响,几乎能支持所有的数据类型。
- 因为Cookie中的数据,都是Session传递的。因此,Session可以直接自动管理cookie。
案例
借助session重新实现上述TPshop商城登录,并获取“我的订单”页面数据。
实现步骤:
1. 创建一个Session实例。
2. 使用Session实例,调 get方法,发送获取验证码请求。(无需获取cookie)
3. 使用同一个Session实例,调用post方法,发送登录请求。(无需携带cookie)
4. 使用同一个Session实例,调用get方法,发送查看我的订单请求。(无需携带cookie)
面试题 Cookie 和 Session 区别
- 1. 数据存储位置:cookie存储在浏览器;session存储在服务器。
- 2. 安全性:cookie中的数据可以随意获取,没有安全性可言。Session的数据多为加密存储,安全较高。
- 3. 数据类型:cookie支持的数据类型受浏览器限制,较少;Session直接使用服务器存储,支持所有数据类型。
- 4. 大小:cookie大小默认4k;Session大小约为服务器存储空间大小。