一、什么是接口
一般来说接口分为两种:一个是程序内部的接口;一个是系统对外的接口
1、程序内部接口:方法与方法之间、模块与模块之间的交互,程序内部抛出的接口(比如系统有登录模块与发帖模块,要发帖就要先登录,这两个模块之间有交互就会抛出一个接口提供内部调用)
2、系统对外接口:从其他系统获取资源,根据其先写好的方法,引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的(比如支付时调用支付宝接口)
二、接口的分类
最常用的两种接口就是webservice接口和http api接口
1、webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
2、http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
三、前端和后端
1、前端是什么呢,对于web端来说,咱们使用的网页,打开的网站,这都是前端,这些都是html、css写的;对于app端来说呢,它就是咱们用的app,android或者object-C(开发ios上的app)开发的,它的作用就是显示页面,让我们看到漂亮的页面,以及做一些简单的校验,包括控件布局,色调,字体,控件响应等等。
2、后端就是网站的逻辑部分,主要涉及数据库,动态语言如PHP、ASP、JSP等,前端和后端是怎么交互的呢,就是通过接口。(ps:后台一般指的是管理员操作模块,包括对网站内容的更新、注册会员管理等等,是网站的一个子模块,也是属于前端)
四、接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果。
五、接口测试的必要性
1、可以发现很多在页面上操作发现不了的bug
2、检查系统的异常处理能力
3、检查系统的安全性、稳定性
4、前端随便变,接口测好了,后端不用变
5、后端开发往往比前端开发早完成,提早进行接口测试可以减少bug修复的成本
六、GET和POST请求:
如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送。
GET请求和POST请求的区别:
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了。
七、HTTP状态码
1、2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
2、3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了
3、4开头代表客户端的问题 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
4、5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果