接口自动化基础postman
接口简单概念
- 接口类型:http类型(get、post、delete、put)
get: 地址栏提交,get数据放在url之后。数据大小有限制,不安全
post: form表单提交,数据量大。相对安全一些。
一般常用post。
get只能在url中,post传参数有两种方式,一种是直接在url中、另一种是放在body中
接口测试主要测试点
- 参数异常 例如get请求url中参数
关键字参数;参数为空;多、少参数;错误参数 - 数据异常: 关键字数据、数据为空、长度不一致、错误数据
常用工具分类
-
抓包工具:推荐fiddler
-1 httpwatch:ie/firefox
-2 wireshark:抓取所有经过电脑的请求(比如tcp等协议的请求),看数据比较麻烦
-3 fiddler 只记录http请求,且可进行接口测试。 -
接口测试工具:推荐postman
-1 loadrunner:因为性能测试也是http请求,所以可以通过webRequest函数实现
-2 fiddler:主要用于抓包,其他功能也很强大
-3 soapui:对json的转译不是很好
-4 jmeter
-5 postman
例如 接口测试:http://xapi.kybyun.com/shop/goods/get?_t=1471936220&id=453
fiddler运用
postman 接口测试实例
-
首先用fiddler 或者是浏览器f12 或者是需求文档 获取接口数据
-
postman中设置 请求类型post 或者get
-
填写接口地址,可设置局部变量或者全局变量
-
postman中设置Headers: 包括Content-Type 和Cookie
-
设置body体,主要为json格式
-
设置Tests 断言
-
执行
python 实现接口自动化小例子----get请求(轻微理解)
get请求测试。
例子:http://reg.haibian.com/login/ajax_login?loginname=student08@qq.com&password=96e79218965eb72c92a549dd5a330112
# -*- coding: utf-8 -*-
# python 3.x urllib 和urllib2 合并 调用urllib.request
# 此程序只打印返回值
import urllib.request
url = "http://reg.haibian.com/login/ajax_login"
# 定义请求数据,并且对数据进行赋值,密码用md5 加密
data = {}
data['loginname']= 'student08@qq.com'
data['password']= '96e79218965eb72c92a549dd5a330112'
# 对请求数据进行编码
data = urllib.parse.urlencode(data)
# 将数据和url进行连接
request =url +'?'+data
# 打开请求,获取对象
requestResponse = urllib.request.urlopen(request)
# 读取服务端返回的数据
ResponseStr = requestResponse.read()
# 打印数据
ResponseStr= ResponseStr.decode("unicode_escape")
print(ResponseStr)
python 实现接口自动化小例子----post请求(轻微理解)
# -*- coding: utf-8 -*-
# python 3.x urllib 和urllib2 合并 调用urllib.request
import urllib.request
url = "http://xapi.kybyun.com/user/login"
headers={}
headers={
}
data = {}
data['appchg']= 'AppStore'
data['apptype']= '21'
data['appver']= '2.1.3.1'
data['email']='mushishi01'
data['isblind']='0'
data['passwd']='111111'
data['sysdev']='iPhone 6 Plus'
data['sysver']='9.3'
data['uuid']='6ff7563dbbd47c8077905c3920bc0d8b3'
# 数据编码以及赋值
data = urllib.parse.urlencode(data)
req = urllib.request(url, data.headers)
# 打开地址并且赋值给变量
ResponseStr = urllib.request.urlopen(req)
# 读取获得的值
ResponseStr= ResponseStr.read()
# 打印数据
print(ResponseStr)
url headers data 缺一不可