摘要
使用脚本进行接口测试的时候,通常使用 python 的 requests 库进行测试。 本次主要给大家介绍 requests 的常见用法。
一、requests 库常见的请求方式
对于requests 的常见的请求方式通常是:get、post、put、delete
那么对于以上的方式用法该如何用呢?
二、接口测试之 get
结构:
requests.get(url,**kwargs) 或者
不需要单独参数:requests.get(url?params=xxxx)
解析:
get 请求是日常很常见的请求,实际工作中也不会有太多的get请求接口去进行测试。我们需要知道的是 requests 框架对于get请求的实际应用。
对于以上实例中,get 请求有两个参数,其中 url 是必须项。例如仅范围:https//www.baidu.com
我们就可以写成如下代码,用 res 接受返回的值然后打印出来。
res=requests.get("https://www.baidu.com")
print(res.text)
当然有很多的 get 请求地址后方会传递参数,如下代码。
res=requests.get("https://www.baidu.com?s=123")
print(res.text)
也可以把参数分开
paras={"s":"123"}
res=requests.get("https://www.baidu.com",params=params)
print(res.text)
备注说明:get 请求参数利用requests 底层的参数 params
三、接口测试之 post
结构:requests.post(url,data,json,headers)
解释:对于post 请求通常先看接口请求的 Content-Type, 如果 Content-Type 为 application,那么我们就用 json 接受body体内容,如果 Content-Type 为 x-www-form-urlencoded、form-data 等表单类型,那么就用 data 作为接收 body 体内容。
如下是测试json 类型的接口请求示例:
header={"Content-Type":"application/json","Authorize":"xxx..token..."}
url="https://xxxxxxx"
data={key:value}
res=requests.post(url,json=data,headers=header)
print(res.json())
四、接口测试之 put 请求
结构:requests.put(url,data)
解释:对于put 请求,通常是上传文件操作。 我们需要知道上传文件的地址:url 和 上传的文件 data
对比其他请求的特殊性在于 data 如何获取?
获取data 的常用方式:with open() as f:
#请求头部信息
headers={
"Content-Type":"image/json",
"Authorization":"Bearer \9uX2F1dGhlbnRpY2F0aW9uIjoiQVVUSE9SSVpFRCIsImV4cCI6MTcwOTc0NzI5NCwiaWF0IjoxNzA5NzA0MDk0LCJ1c2VybmFtZSI6ImppYW5namljaGVuZzEifQ.xx0bxmOIflPqDJSfFuIohpEEhmP5FV9s44QUGFNZ9io",
"Uniqcode":"N2NiMWliMTImMTcwOTcwNDEwNjY3OA=="}
#需要上传的文件绝对路径
file_path="/Users/admin/Downloads/zhuomian.png"
#请求体
data={"user_id":"511610","avatar":"/dxxxxe/xxxxx/xxxxx/xxxx/avxxxtor/51133610.jpeg"}
#put 请求应用:
with open(file_path,"rb") as f:
requests.put(url="http://172.28.8.10:307/storage/env_storage/test/user/avator/51133610.jpeg", data=f)
五、接口测试之 delete 请求
结构:requests.delete(url=url,**kwargs)
实例:requests.delete(url,**kwars) 或者 requests.delete(url=url,**kwars)
delete 请求的应用方式可以说和 get 的一样,大家可以看上面的 get 请求来练习 get 请求。