企业级接口自动化思路——思维导图
一、requests详解
1、requests第三方库,主要用户发送http请求,做接口自动化
安装命令:pip install requests
2、requests全局观
get
post
delete
put
request(最核心的方法)
rep = requests.request()
响应:
rep.text //返回字符串的数据
req.content //返回字节格式的数据
req.json //返回字典格式的数据
req.status_code //返回状态码
req.reason //返回状态信息
req.cookies //返回cookies信息
req.encoding //返回编码格式
req.header //返回响应头信息
3、接口实战
1)请求方式:get post delete put
2)请求参数类型:键值对,json格式,文件格式
3)实例:(url随便找的)
##发送get请求
url = "https://chatbot.weixin.qq.com/openapi/sign"
data = {
"a":"1",
"b":"2",
"c":"3"
}
req = requests.get(url = url,params = data)
print(req.json())
Access_token = rep.json()['access_token']
##发送post请求(data和json只需要传递一个)
url = "https://chatbot.weixin.qq.com/openapi/sign" + access_token
data = {
"a" :"1",
"b":"2",
"c":"3"
}
req = requests.get(url,json = data)
print(req.json())
注意
get请求是通过params传递参数的
post通过json或者data传参
他们区别是什么?
1、Data
1)数据报文:如果是字典格式,那么默认情况下:application/x-www-form表示以form表单形式传参,格式:a=1&b=2&c=3
2)数据报文:如果是字符串格式,默认情况下:text/plain (如果是字典格式需要转换成str格式)
2、Json
不管是字典还是字符串格式,默认都是application/json,格式(”a”:”1”,”b”:”2”)
Json.dumps(data) 序列化,将字典格式的数据转换成str格式
Json.loads(data)反序列化 将str格式转换成json格式
总结:
Data只能传简单的只有键值对的dict或者str格式,json一般只能传dict格式,不管简单还是复杂的都可以。
鉴权
Cookie鉴权:通过网页的接口都要做cookie鉴权,这种不常用
通过session实现cookie鉴权,这种常用。
封装
接口自动化框架封装的第一步:统一请求方式。
Requests.request(“get/post/put/delete”,url,data)
Session会话
Session = requests.session()