Pytest之requests常用函数

做接口测试最常接触到的就是requests,这是python中的第三方库,处理URL相关信息非常方便。

get

接口通过get请求并得到响应参数,如下:

rsp = requests.get(url=url, params=params)

url:需要get请求访问的网址

params:请求中需要的参数,以字典的形式保存

post

接口通过post请求并得到响应参数,如下:

rsp = requests.post(url=url, json=data)

post请求的参数较为特殊,可以先看下源码:

Pytest之requests常用函数_第1张图片

可以看到post请求有三个参数,那为什么我举例的时候只写了两个呢?

因为data和json两者使用场景不同,一般只写一个就可以了。

data:可以传字典、列表、字符串等类型的数据。当传字典类型数据时,表示要以from表单的形式传参,例如:a=1&b=2&c=3

json:传json数据(字典和字符串类型都可),默认application/json

说到这里就不得不提两个函数了:

json.dumps(data)

序列化:把dict格式的数据转换成str类型

当data时字典格式的数据,而且是嵌套的字典格式时,data参数不支持这类数据,就需要将它转化为json可以处理的数据格式,这是比较常见的,如下:

rsp = requests.post(url=url, json=json.dumps(data))
json.loads(data)

反序列化:讲str类型的数据转换为dict类型

delete

接口的delete请求:

rsp = requests.delete(url=url) 

put

接口的put请求:

rsp = requests.put(url=url, data=data)

request

这是requests中最核心的函数,其实从上面函数的源码中就可以看出来,所有方法都是通过调用request方法实现的。

先来看下源码:

Pytest之requests常用函数_第2张图片

 它主要有两个参数:method和url,从注释中可以看出,method可以是“GET”、“POST”等等

get请求也可以这样写:

rsp = requests.request(method="GET", url=url)

post请求也可以这样写:

rsp = requests.request(method="POST", url=url, json=data)

还有比较特殊的就是文件的上传/下载:

从源码中其实是可以看出来有file参数的,这就是上传文件时需要的。如下:

data = {
    "param": open(r"E:\\file.txt","rb")
}
rsp = requests.request(method="POST", url=url, files=data)

文件是以二进制流的形式传递的,而不是文件名。

你可能感兴趣的:(Python,python,pycharm,开发语言)