1.接口测试工具的不足
没有任何一款工具适用于所有项目
2.Python---requests库
2.1接口测试的难点
-
接口协议HTTP -
接口请求方式
-
get
-
post
-
form-data -
x-www-form-urlencoded -
json -
binary
-
put -
delete
-
难点
-
每一项目逻辑不同 -
接口针对业务逻辑 -
每个项目请求方式/请求参数/返回值都可能不一样
2.2requests库
2.2.1安装
2.2.2使用
# 1.导包
import requests
# 2.准备接口三要素
# 请求地址+请求方式
url = "http://127.0.0.1:8000/api/departments/"
# 请求参数
# 发送请求
response = requests.get(url=url)
# 返回值
print(response)
?
2.2.3post请求
https请求失败时,将verify参数改成False
? ? ? ? ? 需要安装requests_toolbelt:pip install requests_toolbelt
from requests_toolbelt import MultipartEncoder
url = "https://httpbin.org/post" ?# 请求地址
# 请求参数
data = {
? ?"username":"Tom",
? ?"age":"6",
? ?"hubby":"Jerry"
}
# 重新组合header
m = MultipartEncoder(fields=data)
headers = {
? ?"contentType":m.content_type
}
# 发送请求
response = requests.post(url=url,data=data,headers=headers, verify=False)
print(response.text)
?
?
#总结
# 1.导入requests_toolbelt
# 2.重新组合headers(请求头)
#针对请求头中contentType:
? ?# m = MultipartEncoder(fields=data) data:是接口的请求数据
? ?# contentType:m.content_type
# 3.发送请求时,重新传入headers
# verify=False 表示requests请求https协议的地址
#SSL
import requests
# post请求-----请求参数为x-www-form-urlencoded格式
url = "https://httpbin.org/post" ?# 请求地址
# 请求参数
data = {
? ? "username":"Tom",
? ? "age":6,
? ? "hubby":"Jerry"
}
# 发送请求
response = requests.post(url=url, data=data)
print(response.text)
?
# 总结
# 参数写成python中的字典格式
# 使用requests.post(url,data)
# post请求----请求参数为json格式
url = "https://httpbin.org/post" ?# 请求地址
# 请求参数
data = {
? ? "username":"Tom",
? ? "age":6,
? ? "hubby":"Jerry"
}
# 发送请求
response = requests.post(url=url, json=data)
print(response.text)
? ?
# 总结
# 参数写成python中的字典格式
# 使用requests.post(url,json)
# post请求---参数类型为binary
?
url = "https://httpbin.org/post" ?# 请求地址
# 请求参数
files = open("test.txt","rb")
data = {"file":files}
# 发送请求
response = requests.post(url=url, files=data, verify=False)
print(response.text)
?
# 总结
# 请求数据字典格式
字典的键自定义
字典的值--读取文件
# 使用requests.post(url,fies)
?
|