0%

Python中使用requests库发送Http请求

最近在使用一个性能测试框架,locust,是用Python写的。模拟测试逻辑时,可用Python来编写需要进行测试的逻辑。

这篇文章讲讲如何使用 requests 这个库,以发送http请求。

Get请求

1
2
3
4
5
6
7
8
url = 'http://localhost/api'
payload = {'id': 100}
headers = {'token': 'xxxxxxx'}
with self.client.get(url, params=payload, headers=headers) as response:
if response.status_code == 200:
if response.text != '':
res_dict = json.loads(response.text)
...

Post请求

当我们使用json方式提交请求时,其实是不用在代码里面指定Content-type: applicaion/json的,只需要使用json参数就可以了。

1
2
3
4
5
6
7
8
url = 'http://localhost/api'
payload = {'id': 100}
headers = {'token': 'xxxxxxx'}
with self.client.post(url, json=payload, headers=headers) as response:
if response.status_code == 200:
if response.text != '':
res_dict = json.loads(response.text)
...

上传文件有点特殊,也不需要指定Content-type,使用files参数即可。java服务端,使用MultipartFile来接收这个文件即可。

1
2
3
4
5
6
7
8
url = 'http://localhost/api'
file = {'file': open('/opt/test.txt', 'rb')}
headers = {'token': 'xxxxxxx'}
with self.client.post(url, files=file, headers=headers) as response:
if response.status_code == 200:
if response.text != '':
res_dict = json.loads(response.text)
...