Python+unittest+Requests实现http接口测试
Python的优势:语法简洁优美, 功能强大, 标准库跟第三方库灰常强大,建议大家事先了解一下Python的基础;
unittest是python的标准测试库,相比于其他测试框架是python目前使用最广的测试框架。
Requests 是用Python语言编写,基于urllib,采用Apache2 Licensed开源协议的HTTP 库。它比urllib 更加方便,可以节约我们大量的工作,完全满足HTTP 测试需求。
话不多说,直接上代码,例子是一个登录接口的请求。
#coding=utf-8
import requests #pip安装requests第三方库,然后引入
import json #引入json标准库,美化json输出
url = 'http://***/account/login'
data = {
"username":"***01",
"password":"password",
}
result = requests.post(url,data).json()
print result
调用requests库中的post方法,会给出所需要的参数,传入上面定义的url和data参数,运行.py文件就执行了post请求。
但是问题来了,这样做,代码的复用性基本不存在,所有这里我们就需要封装一下post请求的方法。执行程序时调用和这个方法就可以了。
# coding=utf-8
import requests # pip安装requests第三方库,然后引入
import json # 引入json标准库,美化json输出
# 定义一个方法,传入需要的参数url和data
def send_post(url=None,data=None ):
# 参数必须按照url、data顺序传入
# 因为这里要封装post方法,所以这里的url和data值不能写死
result = requests.post(url=url,data=data).json()
res = json.dumps(result,ensure_ascii=False,sort_keys=True,indent=2)
print res
if __name__ == '__main__':
url = 'http://***/account/login'