requests库:
requests库是pyton第三方库,适用于接口测试。
requests库安装:
pip install requests
get()请求:
get请求,参数可以直接写在url里,参数也可以不写在url里,将参数组成字典传参给params。
当get请求需要传入header或cookie等参数时,以headers = XXXX,或cookies= xxx传参给**kwargs
接口响应回的cookie是cookiejar格式,可以使用dict函数转为字典
post()请求:
如何判断post请求中,参数传给data还是json
1、如果是form格式参数,接口参数组成字典传给data
如果是json格式参数,接口参数组成字典传给json
如何判断:
1、查看请求头header中的Content-Type参数的值,当Content-Type参数的值是application/json时,post接口参数传参给json,其它传给data
常见Content-Type参数值:
application/json
application/x-www-form-urlencoded
multipart/form-data :文件上传、图片上传的混合格式
octes/stream : 文件下载
什么是cookie?
cookie是存储于访问者计算机中的变量,由浏览器负责保存在电脑本地(保存在客户端)
cookie是浏览器提供的一种机制,可以有java script(JS)进行控制(设置、读取、删除)
cookie一般是加密存储的,但是存储本地,很难确保数据不被非法访问,不怎么安全。cookie中不适合存储敏感信息,如密码。
哪些信息需要存储在cookie中由服务器决定,在http协议中通过服务器返回的响应报文头中,有个Set-Cookie来指示浏览器或其他客户端在本地保存cookie信息。
cookie保存在客户端的目的是为了下一次访问网站时可以直接取出来发送到服务器,http协议的请求报文头中有cookies专门用于存放这个信息。以便客户端将cookie信息发送给服务器。
cookie可以实现跨页面全局变量,cookie可以跨越同一个域名下的多个网页,但是不能跨域名使用。同一个网站中的所有页面共享一个cookie,可以设置有效期
cookie优点:1、保存用户的登录状态 2、跟踪用户行为 3、定制页面
cookie缺点:可以被禁用,安全性不高,可以被删除,存储空间很小(4-10KB左右)
cookie在哪里?
1、cookie可以在返回的url中 2、cookie在返回的正文里 3、cookie在返回的头header中
cookie获取:
1、重定向url中 2、返回的body中 前两种需要从字符串中提取
3、返回的header中(Set-Cookie),header中的cookie可以通过响应对象.cookies获取(jar格式)。
cookie如何传入下一个接口:
1、直接使用cookies = xxx(可以是字典,可以是jar格式)
2、cookie可以放入请求的header中
session():requests库下的session()不是http协议中的session,requests库下的session()是一个微型的无界面的浏览器,可以自动化管理cookie。
添加cookie:
cookie的构成:
name:cookie名称 value:cookie的值,动态生成的 domain:服务器域名 expiry:cookie有效终止日期
path:path定义了web服务器上哪些路径下的页面可以获取服务器设置的cookie
httponly:防脚本攻击
secue:在cookie中标记该变量,表明只有当浏览器和web server之间的通信协议为加密认证协议时,浏览器才向服务器提交相应的cookie,当前只有一种加密协议:https
添加cookie过程:
1、实例化session()对象
se = requests.session()
2、实例化一个cookiejar对象
jar = requests.cookies.RequestsCookieJar()
3、通过cookiejar对象调用set()方法,设置cookie,有几个cookie就set几次
jar.set("Cookie_Lang_OA","zh_CN")
jar.set("JSESSIONID","26BDFDA12D9E36DBFE59E436E3EC1FD7")
jar.set("LoginId_OA","sup")
4、将cookie添加到session对象
se.cookies.update(jar)