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

简介: 相信大家都知道,用Python来做接口测试,使用的方法很多,如POST、GET等方法请求API参数。下面就 豆瓣图书的用户收藏信息api来学习Python3+urllib这两个库来实现POST和GET下的api请求实例,附上代码注释:一、接口相关信息。

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

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

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

img_61d66700ee25e0ed504075eea22ed856.png
图片来自简书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的请求结果是一致的

img_598c29754c3e6ee6129d1af049d5dd77.png
图片来自简书2
目录
相关文章
|
1月前
|
数据采集 JSON API
如何实现高效率超简洁的实时数据采集?——Python实战电商数据采集API接口
你是否曾为获取重要数据而感到困扰?是否因为数据封锁而无法获取所需信息?是否因为数据格式混乱而头疼?现在,所有这些问题都可以迎刃而解。让我为大家介绍一款强大的数据采集API接口。
|
1月前
|
JSON API 数据库
解释如何在 Python 中实现 Web 服务(RESTful API)。
解释如何在 Python 中实现 Web 服务(RESTful API)。
26 0
|
1月前
|
缓存 API 定位技术
使用Python调用百度地图API实现地址查询
使用Python调用百度地图API实现地址查询
105 0
|
2天前
|
测试技术 API 网络架构
Python的api自动化测试 编写测试用例
【4月更文挑战第18天】使用Python进行API自动化测试,可以结合`requests`库发送HTTP请求和`unittest`(或`pytest`)编写测试用例。以下示例: 1. 安装必要库:`pip install requests unittest` 2. 创建`test_api.py`,导入库,定义基础URL。 3. 创建继承自`unittest.TestCase`的测试类,包含`setUp`和`tearDown`方法。 4. 编写测试用例,如`test_get_users`,检查响应状态码和内容。 5. 运行测试:`python -m unittest test_api.py`
12 2
|
2天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
|
3天前
|
人工智能 机器人 API
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
6 0
|
1月前
|
JSON API 数据格式
Python中使用API(四)
Python中使用API(四)
20 0
|
1月前
|
JSON API 数据格式
Python中使用API(三)
Python中使用API(三)
18 0
|
1月前
|
JSON Shell API
Python中使用API(一)
Python中使用API(一)
17 0
|
1月前
|
缓存 监控 API
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
58 0