一、Requests库的基本使用:
安装:pip install requests -i https://pypi.douban.com/simple
官方文档: https://requests.readthedocs.io/zh_CN/latest/
用来进行HTTP访问处理的第3方库。
基本用法:
方法一:
requests.request(请求方法,请求地址, 协议版本号,请求数据,请求头信息….)
实际接口:requests.request(method,url,**kwargs)
示例:
- # get请求,查询所有学院信息
- # 定义地址
- url = "http://127.0.0.1:8000/api/departments/"
- # 调用方法,发送请求
- res01 = requests.request("get", url)
- print("request方法获取的get响应报文为:", res01.text)
方法二:每种请求方法使用一个函数。
(1)GET方法使用 requests.get(请求地址,协议版本号,请求数据,请求头信息….)
实际接口:requests.get(url,**kwargs)
示例:
- # 定义地址
- url = "http://127.0.0.1:8000/api/departments/"
-
- # get请求不带参数
- # 调用方法,发送请求
- res02 = requests.get(url)
- print("get请求不带参数返回", res02)
- print("get请求不带参数返回的报文文本为:", res02.text)
- print("get请求不带参数返回的状态码为:", res02.status_code)
- print("get请求不带参数返回的头部字段为:", res02.headers)
-
- # get请求带参数
- # 定义参数列表,分析清楚参数名和参数值分别是什么
- para03 = {"dep_name": "小狐狸"}
- # 发送请求,获取响应,存入一个变量
- res03 = requests.get(url, para03)
- print("get请求带参数返回的响应报文文本为:", res03.text)
(2)post请求使用示例:
需求:添加一条学院信息
携带消息体数据为纯文本格式示例:
- # 定义地址
- url = "http://127.0.0.1:8000/api/departments/"
-
- # post请求带消息体数据,方式一:纯文本格式
- # 定制请求头,指定消息体格式为json
- myheader04 = {"Content-Type": "application/json"}
- # 定义消息体数据,纯文本格式
- data = '{"data":[{"dep_id":"flower","dep_name":"百花仙子","master_name":"百花园","slogan":"花无百日红"}]}'
- # 发送请求,获取响应,存入变量
- # 调用encode方法,转换编码格式
- res04 = requests.post(url, data.encode("utf-8"), headers=myheader04)
- print("post请求带纯文本消息体数据返回的响应报文为:", res04.text)
携带消息体数据为json格式示例:
- # 定义地址
- url = "http://127.0.0.1:8000/api/departments/"
-
- # post请求带消息体数据,方式二:json格式
- # 定义消息体数据,json格式
- json01 = \
- {
- "data":
- [
- {
- "dep_id": "monkey",
- "dep_name": "孙悟空",
- "master_name": "花果山水帘洞",
- "slogan": "知恩不报非君子,万古千秋作骂名。"
- }
- ]
- }
- # 发送请求,存入变量
- res05 = requests.post(url, json=json01)
- print("post带json格式消息体数据返回的响应报文为:", res05.text)
二、对响应结果进行处理
获取响应码:
print("响应状态码:",res.status_code)
获取头信息:
print("响应头信息:",res.headers)
获取响应文本:
print("响应数据文本:",res.text)
三、python接口测试框架的设计思路
(1)请求发送与响应获取:requests库
(2)测试用用例管理:unittest
(3)生成测试报告:unittest、其它HTML报告生成工具
(4)测试数据的管理:csv
(5)参数化:DDT