使用python 进行api 接口测试


 

1,关于requests

requests是python的一个http客户端库,设计的非常简单,专门为简化http测试写的。

 

2,开发环境

mac下面搭建开发环境非常方便。

sudo easy_install pip
sudo pip install requests

测试下:python命令行

import requests
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{type:User...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}

开发工具,之前使用sublime,发现运行报错,不识别table字符。

IndentationError: unindent does not match any outer indentation level

非常抓狂的错误,根本找不到代码哪里有问题了。甚至开始怀疑人生了。
python的这个空格区分代码真的非常让人抓狂。开始怀念有大括号,分号的语言了。

彻底解决办法,直接换个IDE工具。使用牛刀,IDA开发。
下载地址:https://www.jetbrains.com/pycharm/download/
直接下载社区版本即可,因为就是写个脚本啥的,没有用到太复杂的框架。
title=

果然效果非常好,直接格式下代码,和java的一样好使,可以运行可以debug。右键直接运行成功。

3,测试接口

没有啥太复杂的,直接使用requests框架即可。

#!/usr/bin/python
# -*- coding: utf-8 -*-

################
# python简明教程 http://woodpecker.org.cn/abyteofpython_cn/chinese/ 

import requests

#测试百度
def baidu_func(url):
    headers = {}
    params = {}
    req = requests.post(url, headers=headers, params=params)
    print(req.text)


if __name__ == '__main__':
    url = http://www.baidu.com
    baidu_func(url)

4,总结

 

测试非常重要,尤其是对外的接口出现的漏洞,需要花时间去仔细测试,同时要仔细分析代码。
安全是挺重要的事情,要花时间去琢磨。
python学习还是非常容易学习的,一个小时就能把语法学会。
同时渗透测试,安全扫描的好多工具也是python写的。PyCharm CE版本的开发工具足够强大,能够帮你快速学习python。
如果想快速做点界面的开发,wxPython是非常不错的选择。

评论关闭