requests模块是python的第三方模块,用来发送网络网络请求,常用与爬虫,能够完全满足基于HTTP协议的接口测试
requests模块的安装方法:
#安装 pip install requests #验证 pip show requests1.2 requests模块发送请求
(1)简单的发送get请求
# 导包 import requests #请求方法:get #请求地址:"https://www.baidu.com" #响应数据 url = "https://www.baidu.com" res = requests.get(url) #编码 res.encoding = "utf-8" print(res.text)一次完整的请求(附加)
1)请求方法
2)URL
3)params,headers,body
4)前置脚本,后置脚本
5)响应数据 + 断言结果
#1,请求方法:requests.请求方法()
#2,URL定义:URL是请求的地址,是一个字符串形式
# 做接口测试,URL应该是接口地址
#3,params是URL后面拼接的查询参数,params是以键值对形式出现的
# 比如: pms ={'wd':'value'}
# 传参:requests.get(url,params=pms)
#4,body:请求体,请求体,请求体一般用在post/put/patch等方法中
# body数据一般都是键值对形式的字典
#5,响应数据的类型:
# - res.text:响应数据的文本形式
# - res.json():json数据格式转化为python基础数据类型
# - res.content:获取相应数据的二进制流形式
cookie状态保持
import requests
url = "https://www.baidu.com"
params = {
"wd":"北京"
}
hds = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/90.0.4430.93 Safari/537.36'
'cookie':''
}
res = requests.get(url=url,params=params,headers=hds)
res.encodeing = 'utf-8'
with open('test.html','w',encoding='utf-8') as f:
f.write(res.text)
ret = requests.get(url=url,params=params,headers=hds)
session实现状态保持
# 使用步骤
# 导包: from requests import Session
# 实例化session对象: session = Session()
# 请求是使用session对象, 不在使用requests: session.get()
# 注意事项: 要想一直保持状态, 中间不可间断, 要一直用session请求
from requests import Session
#实例化Session对象
session = Session()
url_login = 'http://www.2552.com.cn/e/member/doaction.php'
data = {
'ecmsfrom': '',
'enews': 'login',
'tobind': '0',
'username': 'Jeremy',
'password': '123456',
'lifetime': '0',
'Submit': '登 录'
}
session.post(url=url_login, data=data)
url_mine = 'http://www.2552.com.cn/e/member/cp/'
res = session.get(url=url_mine)
with open('./mypage.html', 'w', encoding='utf8') as f:
f.write(res.text)
jwt扩展
jwt是什么,可以做什么,与cookie和session相比可以做什么
它的组成:由header,payload,signature这三部分组成
header:
header部分由以下的json结构生成:
typ用来标识整个token是一个jwt字符串,alg代表签名和摘要算法,一般签发JWT的时候,只要typ和alg就够了,生成方式是将header部分的json字符串经过base64Url编码:
playload部分:
playload用来承载要传递的数据,它的一个属性对被称为claim,这样的标准成为claims标准,同样是将其用base64Url编码
signaturesignature部分是将前两个部分的json拼接中间加一点,再将这个拼接后的字符串用alg中的算法处理
token的生成和解密



