用python实现接口测试(一 、请求api)

上一篇 / 下一篇  2017-04-06 22:52:04 / 个人分类:python

python实现接口测试(一 、请求api)

用python来做接口测试,可以通过学习urllib和urlllib2这两个库来实现,下面以 豆瓣图书的用户收藏信息api 来举例说明一下。

看一下这个接口的相关信息,如下:

我们可以把:name换成豆瓣老大阿北的用户名,即https://api.douban.com/v2/book/user/ahbei/collections,来看看阿北平时喜欢看什么书。下面分别用post和get两种方式请求api,附上代码注释。

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

#-coding:UTF8-*-import urllib2,urllib# 把这两个库导入url ='https://api.douban.com/v2/book/user/ahbei/collections'# 这是要请求的urldata={'status':'read','rating':3,'tag':'小说'}# 根据api文档提供的参数,我们来获取一下阿北读过的书中,他标记了‘小说’这个标签的三星书籍,把这些参数值存在一个dict里data= urllib.urlencode(data)# 把参数进行编码url2 = urllib2.Request(url,data)# 用.Request来发送POST请求,指明请求目标是之前定义过的url,请求内容放在data里response = urllib2.urlopen(url2)# 用.urlopen打开上一步返回的结果,得到请求后的响应内容apicontent = response.read()#将响应内容用read()读取出来print  apicontent#打印读取到的内容

运行上面的代码后,返回了下面的结果:

{"count":20,"start":0,"total":1,"collections":[{"status":"read","rating":{"max":5,"value":"3","min":0},"updated":"2007-02-28 01:33:03","user_id":"1000001","tags":["小说"],"book":{"rating":{"max":10,"numRaters":33631,"average":"7.4","min":0},"subtitle":"","author":["余华"],"pubdate":"2006-3","tags":[{"count":8995,"name":"余华","title":"余华"},{"count":4754,"name":"小说","title":"小说"},{"count":2080,"name":"兄弟","title":"兄弟"},{"count":1931,"name":"中国文学","title":"中国文学"},{"count":1533,"name":"兄弟(下)","title":"兄弟(下)"},{"count":1157,"name":"当代","title":"当代"},{"count":1050,"name":"中国","title":"中国"},{"count":1010,"name":"文革","title":"文革"}],"origin_title":"","image":"http:\/\/img3.douban.com\/mpic\/s9109733.jpg","binding":"平装","translator":[],"catalog":"","pages":"475","images":{"small":"http:\/\/img3.douban.com\/spic\/s9109733.jpg","large":"http:\/\/img3.douban.com\/lpic\/s9109733.jpg","medium":"http:\/\/img3.douban.com\/mpic\/s9109733.jpg"},"alt":"http:\/\/book.douban.com\/subject\/1703544\/","id":"1703544","publisher":"上海文艺出版社","isbn10":"7532129845","isbn13":"9787532129843","title":"兄弟(下)","url":"http:\/\/api.douban.com\/v2\/book\/1703544","alt_title":"","author_intro":"余华,浙江海盐人,1960年出生于浙江杭州,后来随父母迁居海盐县。中学毕业后,因父母是医生,余华曾当过牙医,五年后弃医从文,进入县文化馆和嘉兴文联,从此开始文学创作生涯。曾在北京鲁迅文学院与北师大中文系合办的研究生班深造,1984年开始发表小说。余华是中国先锋派小说的代表人物,与叶兆言、苏童等人齐名。作品有短篇小说集《十八岁出门远行》、《世事如烟》,和长篇小说《活着》、《在细雨中呼喊》及《战栗》。","summary":"宋钢在下部里面遭遇的命运是他所在的工厂破产,他也越来越潦倒,后来因为各种各样复杂的原因,他在40多岁时**了。他**时,林红和李光头正在同一张床上。宋钢在临死之前,给林红和李光头都写了一封信。\n林红是一个典型的连接今天和过去的女性,不同于80年代以后出生的女性。宋钢的死,让她在生意场上变得像以前的李光头一样很成功,而李光头则变得没有了任何**,挣钱没有了任何兴趣,唯一的愿望就是,上太空,把哥哥的骨灰盒拿到太空去。\n在尾声里,余华交代了李光头的命运。“他要上太空去。他还专门请了两个俄罗斯留学生教他俄语,还进行体能锻炼。因为李光头在电视里看到,在太空的轨道上,每天可以看16次日出和16次日落。李光头要把宋钢的骨灰盒放在,太空的轨道上,让宋钢遨游在月亮和星星之间,最后,李光头用俄语说:‘我的兄弟宋钢就是外星人了’。”","series":{"id":"15299","title":"兄弟"},"price":"27.00元"},"book_id":"1703544","id":11128591}]}

所以可以知道,阿北读过的书中,他标记了‘小说’这个标签的三星书籍只有1本( total=1 ),就是余华的《兄弟》

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

importurllib2,urllib

url ='https://api.douban.com/v2/book/user/ahbei/collections'data={'status':'read','rating':3,'tag':'小说'}data= urllib.urlencode(data)

url2 = url +'?'+data# 跟post不同的只有这一句,使用?把url和data的内容连接起来,结果是https://api.douban.com/v2/book/user/ahbei/collections?status=read&rating=3&tag=%E5%B0%8F%E8%AF%B4response = urllib2.urlopen(url2)

apicontent = response.read()

print  apicontent

TAG: Python python 接口

 

评分:0

我来说两句

Open Toolbar