且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

用python实现接口测试(一 、使用POST和GET请求api)

更新时间:2022-01-06 03:46:35

相信大家都知道,用Python来做接口测试,使用的方法很多,如POST、GET等方法请求API参数。

下面就 豆瓣图书的用户收藏信息api来学习Python3+urllib这两个库来实现POST和GET下的api请求实例,附上代码注释:

一、接口相关信息。如下:

用python实现接口测试(一 、使用POST和GET请求api)
图片来自简书1

二、我们可以把:name换成豆瓣老大阿北的用户名,即https://api.douban.com/v2/book/user/ahbei/collections,来看看阿北平时喜欢看什么书

1.用post方法请求api

#coding:utf-8

#auther:xiaozhong

#Data:2017-11-12 15:30

""""用post方法请求api:这种方式把参数放在请求内容中传递,比较安全"""

importurllib.request,urllib# 把这两个库导入

url ='https://api.douban.com/v2/book/user/ahbei/collections'# 这是要请求的url

data={'status':'read','rating':4,'tag':'小说'}# 根据api文档提供的参数,我们来获取一下阿北读过的书中,他标记了‘小说’这个标签的三星书籍,把这些参数值存在一个dict里

#data = urllib.parse.urlencode(data) # 把参数进行编码

data = urllib.parse.urlencode(data).encode(encoding='UTF8')

url2 = urllib.request.Request(url,data)# 用.Request来发送POST请求,指明请求目标是之前定义过的url,请求内容放在data里

response = urllib.request.urlopen(url2)# 用.urlopen打开上一步返回的结果,得到请求后的响应内容

apicontent = response.read()#将响应内容用read()读取出来

print('用post方法请求api')

print(apicontent)#打印读取到的内容

2.用get方法请求api

#coding:utf-8

#auther:xiaozhong

#Data:2017-11-12 15:30

""""用get方法请求api:这种方式把参数放在直接放在url中"""

url ='https://api.douban.com/v2/book/user/ahbei/collections'

data = {'status':'read','rating':3,'tag':'小说'}

data = urllib.parse.urlencode(data)

url = url +'?'+ data

""""跟post不同的只有这一句,使用?把url和data的内容连接起来,

结果是https://api.douban.com/v2/book/user/ahbei/collecti

ons?status=read&rating=3&tag=%E5%B0%8F%E8%AF%B4"""

response = urllib.request.urlopen(url2)# 用.urlopen打开上一步返回的结果,得到请求后的响应内容

apicontent = response.read()#将响应内容用read()读取出来

print('用get方法请求api')

print(apicontent)#打印读取到的内容

三、运行结果分析

从下图可以看出,POST和GET的请求结果是一致的

用python实现接口测试(一 、使用POST和GET请求api)
图片来自简书2