先自己回顾一下,什么叫接口测试,什么叫接口。
百度百科
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
接口的概念:从我个人理解就是,我和你,商量好,我们之间交流的方式,然后,我对你开放一个端口,用于交流,我开放的这个端口就是接口,交流的方式就是我们之间的通信协议。
从形式上来看各种应用程序的API,硬件的驱动程序,数据库系统的访问接口,再到后来的Webservice接口,http rest接口。接口形式有非常多,有调用内部程序的接口,也有对外开放的接口。常说的api就是接口的意思,现在常用的web项目,app项目的接口都是基于http请求的,有些系统内部之间调用的接口一般不需要我们测试
但是从测试角度来说,需要测试的内容大致是相同的,功能,性能,安全。
接口测试百度百科
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试的目的
测试接口的正确性和稳定性(持续集成是接口测试的核心)
接口测试的原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程。
接口测试的重点
检查数据的交换,传递和控制管理过程,还包括处理的次数
检查接口返回的数据是否与预期结果一致
检查接口的容错性
接口参数的边界值
接口的性能
接口的安全性
接口测试用例设计
接口测试属于功能测试,也可以看做是需要了解部分代码的灰盒测试.
根据接口文档编写测试用例(用例编写方法完全可以按照黑盒测试的用例编写规则来编写,如:边界值、正交表等等设计方法)
主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常)。
根据业务逻辑来设计测试用例
接口的持续化集成测试
对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。关注持续集成是接口测试的灵魂,否则接口测试带来工作量会成指数增长!
我个人比较喜欢使用的框架:jmeter+maven+Jenkins
接口测试质量评估标准:
(a) 业务功能覆盖是否完整
(b) 业务规则覆盖是否完整
(c) 参数验证是否达到要求(边界、业务规则)
(d) 接口异常场景覆盖是否完整
(e) 接口覆盖率是否达到要求
(f) 代码覆盖率是否达到要求
(g) 性能指标是否满足要求
(h) 安全指标是否满足要求