接口测试理论与分类

首先就要知道接口是什么?

如果你的订单上有一个汉堡,工作人员会先找到汉堡的原材料如面包片、肉饼和生菜等,按照规定步骤,将这些原材料组合成一个汉堡,然后送给你;那么在上面的例子中,汉堡原材料就是接口中必要的条件入参,也就是接口的特定输入;制作汉堡的过程,就是接口内部的处理逻辑;送到你面前的汉堡,就是接口的处理结果和特定输出,也就是返回参数。

 

接口就是有特定输入和特定输出的一套逻辑处理单元,而它不用知道自身的内部实现逻辑,这也可以叫做接口的黑盒处理逻辑。

 

接口又可以分为两种,一种是系统或服务的内部接口,一种是外部依赖接口。

内部接口简单来说,内部接口就是系统内部调用的接口。

那么在软件系统中,内部接口是怎么一回事呢?

其实,你在网上购物时,要先登录系统,然后将商品加入购物车,再接下来支付订单。那么,从添加商品到购物车,再到支付订单,这一长串的流程之间,就是通过系统内部接口来完成的。

那什么是外部接口呢?其实它是相对于内部接口而存在的一个概念,上面你在点餐的场景就是一个外部接口,它又可以分为两部分:出订单前,你的点餐过程。这个外部接口特定的输入是你在点餐时,告诉服务员你想点什么,这也是你输出给餐厅的参数。出订单后,服务员送餐的过程。它的特定的输出是服务员把汉堡送给你,这也是餐厅返回给你的处理结果参数。

什么是接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

为什么要做接口测试

由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。同时,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

一张图看下接口测试


接口都有哪些种呢?

HTTP 协议的接口、RESTful 格式的接口、WebService 的接口、RPC 协议的接口等。

其实无论是哪一种形式的接口,它们都是通过某一种传输协议,在 Client 端和 Server 端之间来完成数据传递的。接口测试其实就是模拟调用方,比如 Client 端,通过接口通信来检测被测接口的正确性和容错性。模拟这些客户端上的前端逻辑,调用 Server 端提供的接口,完全可以借助一些工具或代码来完成这项工作。,

在接口测试中,工具或代码并不是它的核心内容,接口测试思维才是你应该重点关注的问题。

接口测试和你以前最熟悉的业务测试一样,都是关注输入和预期是否一致,尤其是输入数据中有一些非法输入的时候,接口的处理和逻辑控制是否合理,这些都是通过返回值来判定的。还有一些小概率逻辑的处理也是我们设计输入的关注重点,比如一些代码中的异常情况,我们也要想办法,通过输入参数来触发这种逻辑分支,通过返回值来判定对应接口内部实现的处理逻辑是否合理、是否健壮。

在工作范围上,接口测试影响的范围会更广一点,它会覆盖一部分单元测试的内容,也会覆盖一部分业务测试的内容,

接口测试和业务测试的区别和联系,那就是“相互依存,不可分割”。

接口测试是通过设计输入和预期输出来完成测试验证的,接口测试是一个技术知识和业务知识相结合的工作,接口测试也是功能测试,要说有和界面测试不同的地方,仅仅是和我们交互的,不再是开发工程师设计的界面,而是测试工具或者代码。

 

 

原文地址:https://www.cnblogs.com/dydxw/p/12274058.html