接口测试分类:
1)程序内部接口 2)系统对外接口
对外接口:实现资源共享目的,引用接口就可以利用别人写好的方法
内部接口:方法与方法之间、模块与模块之间交互
常见接口:
1)webservice接口:走soap协议,通过http传输,请求报文和返回报文都是xml格式,使用工具:soapui、jmeter、loadrunner
2)http api:走http协议,通过路径区分调用方法,请求报文都是key-value格式,返回报文是json串,有get和post方法,工具:
postman、RESTClient、jmeter、loadrunner
前后端就是通过接口来交互
接口测试目的:要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等
接口测试组成:
接口都有那些部分组成呢?
首先,接口文档应该包含以下内容:
1、接口说明
2、调用url
3、请求方法(get\post)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
由接口文档可知,接口至少应有请求地址、请求方法、请求参数(入参和出参)组成,部分接口有请求头header
header和请求参数区别
header里存放的参数一般存放的是一些校验信息,比如cookie,它是为了校验这个请求是否有权限请求服务器,如果有,它才能请求服务器,然后把请求地址连同入参一起发送到服务器,然后服务器会根据地址和入参来返回出参。也就是说,服务器是先接受header信息进行判断该请求是否有权限请求,判断有权限后,才会接受请求地址和入参的。
get和post请求
1)get请求,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,
2)如果是post的请求的话,就不行了,就得借助工具来发送。
GET请求和POST请求的区别:
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
post请求其实也是可以通过抓包抓到
状态码:
每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果
接口测试的必要性就体现出来了:
①、可以发现很多在页面上操作发现不了的bug
②、检查系统的异常处理能力
③、检查系统的安全性、稳定性
④、前端随便变,接口测好了,后端不用变
jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。