一、什么是接口测试
为了方便大家好理解,先说个大家见过的接口,如:电脑上的USB接口、电脑充电接口、电脑上的耳机接口等等,这些都是硬件上的接口。
同样的,软件上也有接口的。比如:登录接口、注册接口、忘记密码接口等等。如下图:
由上图可以看出,接口是干什么的?
答:接收客户端的请求,并处理请求
客户端每发一个请求,都是向服务端对应的接口发送请求,然后由该接口来处理这个请求。如:点击登录按钮后,它是向服务器的登录接口发送了请求
二、什么是接口测试?
接口测试顾名思义,就是对项目中的接口进行的一种测试。它测试的主要对象就是软件某个功能的接口。
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。(来自:百度百科-接口测试)
三、为什么要做接口测试?
1、 将服务端的问题提前抛出来:
在项目的初期,测试人员提前介入,进行接口测试模拟客户端与服务端的交互。
2、 可以更快速的定位是客户端的bug还是服务端的bug。如:
手机端:输入正确的用户名和密码,登陆失败
接口测试:正确的用户名和密码,正常登录
------结论:手机端/前端错误,手机端封装成请求数据时出错
3、 可以发现很多在页面上操作发现不了的bug
4、 检查服务端的异常处理能力
五、接口测试的原理
接口测试是通过在接口测试的工具中模拟客户端向服务器发送请求,服务器接收请求后对相应的请求数据做处理,并向客户端返回处理结果(响应数据),客户端再接收服务器的处理结果。
比如QQ登录:
Ø 在APP(前台)中,在登录页面输入QQ号和密码,点击登录按钮后,会向QQ后台(即QQ服务器)的登录接口中发送请求,从而由登录接口处理请求后把结果返回给前端;
Ø 接口测试时,在接口测试的工具中,输入登录所用的QQ号、密码和其他的一些请求信息,然后往QQ后台(即QQ服务器)的登录接口中发送请求,从而由登录接口处理请求后把结果返回给前端;
六、接口测试的依据
1、要进行接口测试,需要知道:(1)接口的地址 (2)接口的请求方法 (3)接口的请求参数
这些数据从哪来呢?(这些数据是我们杜撰不来的~~)
所以,接口测试是根据接口文档进行的。
2、接口文档是由开发人员写的,因为后台的接口是开发人员开发的呀。
3、接口文档中,会有很多的接口数据,项目中相关的所有的接口数据都会在接口文档中描述的。(每个)接口都有如下属性:
-
请求地址
-
请求方式:get/post
-
请求参数:key-value(键值对,参数名-参数值)
-
响应数据
4、当然,并不是所有的项目组都会写接口文档的,这个要看项目组的。
5、如果没有接口文档,那怎么做接口测试呢?
答:当然找开发要对应的接口数据了。
七、请求方法:
HTTP请求方法是HTTP请求中必不可少的一部分,HTTP请求可以使用多种请求方法:
— HTTP1.0定义了三种请求方法:get, post和head方法。
— HTTP1.1新增了五种请求方法:options , put , delete , trace和connect 方法。
工作中,GET和POST是常用的请求方法。我这先简单地给大家图解下他们的区别,如下图:
八、请求参数
先看下图(Jmeter接口测试的页面):
请求参数,顾名思义,就是和请求一起发送的数据/参数。比如登录时,你如果想登录,你就必须把账号和密码(这个地方的账号和密码,就是我们登录时需要传递的参数)发到后台,这样后台才能判断让不让你正常登录进去。
九、思考
-
软件的接口在前端还是后端?
-
接口测试测的是什么?
十、接口测试工具
我将在下一篇文章中介绍下接口测试的工具