接口测试是项目测试的一部分,它测试的主要对象是接口,是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各个子系统之间的交互点,定义特定的交互点,通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。测试的重点是检查数据交互、传递、和控制管理过程以及系统间的相互依赖关系等。
接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。外部接口测试一般是作为系统测试来看待的。
接口一般分为两种:
1、程序内部的接口
方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
2、系统对外的接口
比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
接口的分类:
1、webservice接口
webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
2、http api接口
http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
json是一种通用的数据类型,所有的语言都认识它。(json的本质是字符串,他与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成 Python中的字典,key-value的形式,可以转换成JavaScript中的原生对象,可以转换成 java中的类对象等。)
4、接口测试的意义
(1)更早的发现问题
随着敏捷测试的盛行,我们都知道测试工作要尽早的介入到项目开发周期中,因为越早的发现 bug,修复的成本就越低。
然而功能测试一般都要等到系统提供可测试的 UI 界面后才能进行,单元测试又要求较高的专业性和人力成本,所以选择接口测试来更早的介入测试。
接口测试可以在功能界面未开发出来之前对系统的接口进行测试,从而更早的发现总是并以更低的成本修复问题。
(2)缩短研发周期
接口测试更早的介入,可以更早的发现并解决 bug,从而使得留到后期功能测试阶段的 bug 数量减少,最终缩短整个项目的上线时间,有助于实现敏捷测试,从而有效的缩短产品开发周期。
(3)发现更底层的问题
系统中的有些底层逻辑 bug 如果想通过 UI 层功能测试会比较难触发,或者构造测试数据和测试条件非常复杂,而接口测试可以更容易的覆盖到底层的代码逻辑,从而发现一些隐藏 bug。
尤其是一些异常的、极端的情况,可以用接口测试很容易的验证。
5、接口测试质量评估标准
业务功能覆盖是否完整
业务规则覆盖是否完整
参数验证是否达到要求(边界、业务规则)
接口异常场景覆盖是否完整
接口覆盖率是否达到要求
代码覆盖率是否达到要求
性能指标是否满足要求
安全指标是否满足要求
6、接口测试与UI测试的区别
介入时间:
接口测试在集成测试阶段,ui功能测试在系统测试阶段所以接口测试用例的编写要先于ui功能测试用例。
依据文档:
接口测试用例参考接口文档,ui功能测试参考功能需求文档。
组成:
接口测试用例核心是:请求方式、请求地址以及请求参数;
Ui功能测试用例核心是:测试步骤、测试数据。
预期结果:
接口测试用例的预期结果是开发提前写好的,没有界面提示,也不需要数据库;
Ui功能测试用例的预期结果既要检查页面提示信息,也要检查后台及数据库。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于想进阶【接口自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助....