首先,Python的requests库是用于发送HTTP/1.1请求。这个库可以完全地替代Python内置的httplib库。但是,这个有额外的好处,需要手动处理cookies、重定向可以直接获取等等。在接口测试中,使用requests库发送HTTP请求并获取响应内容,可以实现接口的功能测试、性能测试、安全测试等多种测试。
以下是实现Python requests接口测试框架的完整攻略:
说明:
- Python版本:3.7
- requests库版本: 2.22.0
Step1:搭建环境并安装依赖
要使用Python requests库,首先需要搭建Python开发环境。安装Python 3.x版本以及pip软件包管理器。然后在终端执行下列命令安装requests库:
pip install requests
Step2:创建test_case.py文件
在Python代码中调用requests库的相关方法实现接口测试。在test_case.py中写下模块和基础的代码:
import requests
# 地址
url = "http://www.baidu.com"
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
# 不需要参数
data = {}
# 发送GET请求
response = requests.get(url, headers=headers, data=data)
print(response.text) # 打印响应结果
这段代码表示使用requests库发送GET请求到百度,输出响应结果。
Step3: 实现接口测试
以下是两个基本的接口测试用例的示例:
示例1:登录验证接口
import requests
# 地址
url = "http://www.example.com/login.php"
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
# 请求参数
data = {
"username": "test",
"password": "123456"
}
# 发送POST请求
response = requests.post(url, headers=headers, data=data)
print(response.text) # 打印响应结果
# 进行断言,验证是否登录成功
assert response.status_code == 200 # 判断是否成功请求
assert response.json()['result'] == 'success' # 判断登录是否成功
assert 'cookie value' in response.headers['Set-Cookie'] # 判断是否正确返回cookies
示例2:上传图片接口
import requests
# 地址
url = "http://www.example.com/upload.php"
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
# 请求附件
files = {'file': open('test.jpg', 'rb')}
# 发送POST请求
response = requests.post(url, headers=headers, files=files)
print(response.text) # 打印响应结果
# 进行断言,验证是否上传成功
assert response.status_code == 200 # 判断是否成功请求
assert response.json()['result'] == 'success' # 判断上传是否成功
以上两个示例中,分别实现了登录验证、上传图片这两个常见的接口测试场景。
总之,使用Python requests库来实现接口测试,不仅方便,而且灵活多变,可以快速地完成各种功能测试、安全测试、性能测试等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python reques接口测试框架实现代码 - Python技术站