什么是接口测试
1. 什么是接口
接口包含外部接口,内部接口 内部接口包含上层服务与下层服务,同级服务
2. 为什么要做接口测试?
- 节约时间,缩短项目时间
- 提高工作效率
- 提高系统的健壮性
3. 不同接口类型的差异
- 参数提交方式
- 请求数据大小
- 安全性
4. 四种不同接口: get post delete put
get和post的区别:
get的数据写在地址栏,post放在表单中;post请求的数据大小可以很大,get则有限制;post提交的数据更安全。
接口测试流程
1. 用例设计依据:
- 功能
- 逻辑业务
- 异常
- 安全
2. 为什么要做用例设计:
- 理清思路,避免漏测
- 提高测试效率
- 跟进测试进度
- 告诉领导做过
- 跟进重复性工作
3. 接口测试流程:
- 需求讨论
- 需求评审
- 场景设计
- 用例设计
- 数据准备
- 执行
4. 用例设计-安全测试用例设计
cookie
header
唯一识别码(移动端)
5. 用例设计-异常测试用例设计
参数异常
关键字参数异常
参数为空
多、少参数
数据异常
- 关键字数据为null
- 数据为空
- 长度不一致(规定长度)
- 错误数据
接口测试工具的介绍与使用
接口测试工具的重要性
接口测试工具分类
如何选择接口测试工具
- 时间
- 简易程度
- 业务复杂度
- 测试员能力
接口测试工具分类
- 抓取接口
- 测试接口
接口测试工具的分析与抉择:
- loadrunner:功能强大,不止只可以进行性能测试(两个函数:request,)
- fiddler:
请求格式的选择:get、post、delete、put……
请求报文,request header :链接地址
- soapUI:
- Jmeter:根据http请求做性能测试。
- postman:我们需常用的接口测试工具(需要翻墙下载),我们接口测试中的不二选择
接口测试的三剑客:
fiddler
postman
Python自己开发
为什么要自己开发接口测试程序:
工具没法满足需求时
业务限制
安全性
接口测试工具-分类工具介绍
抓取接口的工具:
- httpwatch(是IE和firfox的插件,其他浏览器中并不支持,并且查看数据麻烦,不建议使用。)
- wireshark(通过电脑的所有请求,如http或tcp请求,都会抓取,正因为这样,想要查看某条请求,就比较麻烦,如非必要,不建议使用。)
- fiddler(是一款轻量级,功能比较其全的抓包工具,也是一个接口测试常用到的工具,建议使用)
接口测试工具-fiddler的运用
1. 什么是fiddler
fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑何互联网之间http通讯,设置断点,查看所有的“进出”Fiddler的数据
2. fiddler的运用
- 查看接口请求方式 inspectors - Headers
- 查看请求数据,响应数据 inspectors -
- 接口返回状态 session栏 result
- 设置代理 Tools - Options - Connections
- header,cookie inspectors - Headers
- 设置断点 Rules - Automatic Breakpoints - Before Requests/After
Responses(请求之前/服务端响应之后) - 添加筛选 Filters (Use Filters) —-添加需要筛选的网址
- fiddler进行接口测试 composer
接口测试工具-postman的运用
postman能做到的
- 如何自动反复测试一个需要携带header的post请求,并且对针对线上、测试环境同一个数据进行测试。并对实际结果做比较,以作为测试结果?
关键字:自动 反复 线上 线下 - post的headers旁边的body里有内容,get会把数据都放到url中,body不可以点击。
但是cookie都是在headers里添加的 - 把接口放到collections里同一个文件夹下,可以批量执行。<箭头之后点击run就可以了
iteration:迭代次数 - enviroment:环境
如何编辑测试环境:右上角的设置按钮,选择manage environment,输入环境名称和url - 点击右边的code,可以选择自己熟悉的代码,选择之后,根据选择生成接口测试的代码。
- 测试:逻辑清晰、表达理解能力强、看懂代码、会写代码、会改代码、我来做。
接口测试工具-python-get接口实战
python简介
一个简单的面向队形脚本语言,语法简洁清晰,易学、易懂,并且拥有强大的第三方扩展库。
python get请求实现方式
- 定义接口地址。
- 定义接口数据。
- 整理请求数据。
- 发送数据并获取结果。
data[‘password’]是经过md5加密的,要放到md5在线转译工具里转一下。
python接口get接口测试代码
# -*- coding:utf8 -*-
import urllib
import urllib2
#定义url地址
url = *http://reg.haibian.com/login/ajax_login*
#定义请求数据,并对请求数据进行赋值,数据格式采用字典形式进行存取
data = {}
data['loginname'] = '[email protected]'
#password 采用MD5格式进行加密 如111111
data['password'] = '96e79218965eb72c92a549dd5a330112'
#对请求的数据进行编码 encode
data = urllib.urlencode(data)
#将数据和url进行连接,形成get的连接地址和值
request = url+'?'+data
#打开请求,获取对象
requestResponse = urllib2.urlopen(request)
#读取服务器端的返回数据
responseStr = requestResponse.read()
#打印数据,注意要进行解码decode
responseStr = reaponseStr.decode('unicode_escape')
print(responseStr)
接口测试工具-python-post接口实战
import urllib
import urllib2
url="http://xapi.kybyun.com/user/login"
headers={}
headers={
}
data={}
data=['appchg']='AppStore'
...
#数据编码以及赋值
data=urllib.urlencode(data)
req=urllib2.Request(url,data,headers)
#打开地址并且赋值给变量
ResponseStr=urllib2.open(req)
#读取获得得值
ResponseStr=urllib2.urlopen(req)
#读取获得得值
ResponseStr=ResponseStr.read()
#将获得的结果进行转码
ResponseStr=ResponseStr.decode("unicode_escape")
print(ResponseStr)