接口测试到底什么?Web与移动App所提到的接口测试一样么?
web开发中,接口的意思
两个不同的web工程,A和B,A工程如果要访问B工程中的某个函数方法,这就要通过接口的形式进行访问,即通过webservice的方式(如webservice的框架axis等)。
即发起一个http url请求,传入参数是什么,得到什么返回结果。
App开发中,接口的意思
App研发中的接口,意思是,app端发起一个http url请求,传入参数是什么,得到什么返回结果。
web工程开发中的接口,和,app研发中的接口,看似有区别,实际上没有什么区别。
都是在网络上,发起一个http url请求,传入参数是什么,得到什么返回结果(xml格式或者json格式的,序列化数据)。
即接口是一个黑盒。用户不用管黑盒里怎么进行数据加工的、工作原理是什么,我只需要知道以下三点即可:
-
入口的http url地址
-
传入参数
-
返回结果
接口测试都测什么?怎么测试?
从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:
由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。
工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
我们为什么要做接口测试?接口测试的质量评估标准是什么?
接口测试是测试系统组件间接口的一种测试。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
我们要做接口测试的主要原因如下:
-
如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
-
接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
-
现在很多系统前后端架构是分离的,从安全层面来说:
1、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
2、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
接口测试质量评估标准主要参考以下内容:
-
业务功能覆盖是否完整
-
业务规则覆盖是否完整
-
参数验证是否达到要求(边界、业务规则)
-
接口异常场景覆盖是否完整
-
接口覆盖率是否达到要求
-
代码覆盖率是否达到要求
-
性能指标是否满足要求
-
安全指标是否满足要求