- 接口定义
接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。
2. 系统对外的接口
比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。
3. 程序内部的接口
方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
接口的分类
- WebService接口
走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试
2. http api接口
走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式
接口测试的必要性
- 可以发现很多页面上操作发现不了的bug
- 检查系统的异常处理能力
- 检查系统的安全性/稳定性
- 前端随便编,接口测好了,后端不用变
接口测试流程
- 需求评审,熟悉业务和需求
- 开发提供接口文档
- 编写接口测试用例
- 用例评审
- 提测后开始测试
- 提交测试报告
接口规范文档
- 接口说明
- 调用url
- 请求方法(get\post)
- 请求参数/参数类型/请求参数说明
- 返回参数说明
Get和post请求
如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送。
区别
- GET使用URL或Cookie传参。而POST将数据放在BODY中。
- GET的URL会有长度上的限制,则POST的数据则可以非常大
- POST比GET安全,因为数据在地址栏上不可见。
- 一般get请求用来获取数据,post请求用来发送数据。
- 其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了
http状态码
每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
- 200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
- 300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了
- 400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
- 500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果