接口测试
接口分为程序内部接口及系统对外接口
webService接口:使用soap协议通过http传输,请求和返回报文为yaml格式
http api接口:使用http协议,请求和报文是key-value键值对,返回报文一般都是json串
前端:访问的网页、网站都属于前端。 后台管理也属于前端
后端:一般业务逻辑、功能都是由后端实现的。 前/后端通过接口进行交互
接口测试:测试系统组件间的接口,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试的必要性:
1、 可以发现很多在页面上操作发现不了的bug
2、 检查系统的异常处理能力
3、 检查系统的安全性、稳定性
4、 前端随便变,接口测好了,后端不用变
如何测试接口?
接口请求
url?param=value¶m2=value(问号前面是请求url,后面是请求的参数名和参数值,多个参数用&来连接)
请求方法
GET请求和POST请求的区别:
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
接口用例设计测试点
接口安全:
1、绕过验证,比如对于逻辑业务功能,后端有没有做验证?
2、绕过身份授权,比如使用非规定的操作权限的用户去操作,是否可操作成功
3、参数是否加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
4、密码安全规则,密码的复杂程度校验
如何使用jmeter进行测试接口?
1、创建线程组
2、添加HTTP请求
3、输入请求url及参数信息
请求参数为json类型
请求参数为文件类型
请求需要cookie的接口,需要添加cookie
注:
对于常用参数,可进行参数变量化
函数助手参数
jmeter里面取到时间戳是精确到毫秒
12小时制为h,24小时制为H
年月日表示为:yyyyMMdd
参数化文件:
4.运行,查看结果
对于接口有依赖的如何测试?
当依赖多个其他接口的参数时,需添加多个 jp@gc-JSON Path Extractor
注:jp@gc-JSON Path Extractor必须添加在被依赖接口的节点下
jmeter如何连接数据库?
添加接口脚本时,一般遇到的问题解决方法:
jmeter查看结果树乱码
1、在jmeter的bin目录下找到jmeter.properties这个文件
添加上
sampleresult.default.encoding=utf-8
2、重启jmeter
jmeter body data里面有乱码
1、在jmeter的bin目录下找到jmeter.properties这个文件
添加上
jsyntaxtextarea.font.family=Hack
2、重启jmeter