文章目录
本节课程目标
一、接口自动化测试-requests
1.1 概念:
接口自动化测试:让程序代替认为对接口项目进行自动验证测试的过程
1.2 实现方式:
1、工具:(Jmeter,Postman)
2、代码:(python-requests)
1.3 测试工具缺点:
1、测试数据不好控制(无法直接读取或存储json格式)
2、测试数据加密不方便
3、扩展性不足(复杂业务逻辑,复杂断言)
二、Requests库介绍
2.1 Requests库介绍
1、使用python语言编写
2、使用开源协议,基于urllib库做的二次封装
3、Requests库中的封装了相应的接口测试方法
2.2 Requests库安装及验证
- 安装:pip install requests
- 验证:pip show requests —>显示相应的版本信息
- 注意:安装时,电脑必须连接互联网
三、Requests常用请求方法
方法:GET、POST、PUT、DELETE
3.1 GET方法
- 作用:获取资源(查询)
- 步骤:
- 导包 import requests
- 调用get方法 requests.get()
- 示例:
-
r = requests.get(“http://www.baidu.com”) # r为响应对象
-
请求参数:
1、https://www.baidu.com?id=1001
2、https://www.baidu.com?id=1001,1002
3、https://www.baidu.com?id=1001&kw=北京 -
响应对象:
-
获取URL: r.url
-
获取响应状态码: r.status_code
-
获取响应信息: r.text
-
# 1、导包
import requests
# 2、调用get
url = "http://www.baidu.com"
# 不推荐写法 静态
# url = "http://www.baidu.com?id=1001"
# 案例1: 定义字典
#params = {"id": 1001}
# 案例2: 定义字典
#params = {"id": [1001, 1002]} # 不推荐
#params = {"id": "1001,1002"} # 结果显示http://www.baidu.com/?id=1001%2C1002 %2c ASCII值为逗号
# 案例3:
params = {"id": "1001", "kw": "北京"} # 多个键值使用方法
r = requests.get(url,params=params)
get_url = r.url
print(get_url)
get_status_code = r.status_code
print(get_status_code)
get_text = r.text
print(get_text)
3.2 POST方法
-
作用:新增资源
-
应用:
- 导包 import requests
- 调用post方法 requests.post()
- 示例:requests.post(url, json, headers)
-
参数:
- 1、url:新增接口url地址
- 2、json:新增请求报文
- 3、headers: 请求信息头部
-
响应状态:r.status_code
-
响应信息:r.json() # 以json文本形式响应内容
-
扩展:
-
data与json区别
- data:字典对象
- json:字符串
- 提示:
1、在python中字典对象和json字符串长的一样,但是后台格式是由区别的 - 如何将字典对象转换成json字符串?
1、导入json
2、json.dumps(字典对象) #转换json字符串
-
响应数据json()与text的区别
-
json():返回类型字典,可以通过键名来获取响应的值
-
text:返回的类型为字符串,无法通过键名来获取响应的值
-
提示:共同点长得都很像字典
-
-
3.3 PUT方法
- 作用:更新资源
- 应用:
- 导包:import requests
- 调用put方法:requests.put()
- 示例:
- r = requests.put(url, json, headers)
- 参数:
- 参考post方法
- 响应:
- r.json()
- r.status_code
3.4 DELETE方法
- 作用:删除资源
- 应用:
- 导包:import requests
- 调用方法:delete
- 响应:
- 响应状态码:204