接口测试“高大上”?

Posted 喵小Mei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试“高大上”?相关的知识,希望对你有一定的参考价值。


对于新人尤其是非对口专业的新人来说,可能会不大了解什么是接口(API),什么是接口测试,我们该怎么做(当年的我也是如此)。

抽空整理下关于接口测试的一些内容,希望能为新手小白解惑,同时也是自我知识的梳理。






什么是接口(API)? 



API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问原码,或理解内部工作机制的细节。
百度百科

自我理解:接口就是基于某种规则(约定)向外提供的一种服务(交互)。


举个例子:我们去菜市场买菜,钱给老板,老板把菜给我们,我们不关心这个菜是怎么种出来的,怎么采摘怎么运输,同样卖菜的老板也不关心我们这个菜拿回家后什么时候吃怎么吃。


卖菜的老板(摊位)就相当于是接口的角色,为我们提供卖菜的服务。菜的单价就是规则(约定)。


通常来说,接口有2种:程序内部接口和系统对外接口。


系统对外接口:从字面意思来理解就是对外部系统提供服务的,像现在我们见到的很多app都有微信登录的功能,这就是调用了微信对外提供接口。前面卖菜的老板就是“系统对外接口”。


程序内部接口:应用在程序内部方法与方法,模块与模块之间的交互。如商城系统中的商品模块和订单模块,当用户在下单时,需要获取商品信息进行展示,下单的方法不会直接去数据库拿商品信息,而是通过商品模块提供商品详情方法(接口)去获取。


还是拿上面卖菜的例子来说,我们把卖菜老板背后的供应链看作是一个整体,那当卖菜的老板从批发市场进货时,批发市场就充当了内部接口的角色。


接口测试“高大上”?





什么是接口测试?



在理解了什么是接口后,什么是接口测试就简单了。

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

我的理解:接口测试就是通过组装一系列的入参得到相应的出参后,判断接口是否符合或满足既定要求。这个要求可以是功能上的,也可以是性能上的或者是安全方面的。


接口测试中没有页面UI、前端交互这些,只需按接口说明文档来组装参数,模拟用户请求,验证返回结果是否正确。一般我们需要借助工具来完成,如:postman、Jmeter、SoapUI等。


这里提到了“前端”,那与之对应的就是“后端”,简单的讲下什么是前端、后端。


我们打开的网页、使用的app就是前端,那些漂亮的页面,丰富多彩的内容就是前端渲染出来的。为这些页面、内容提供数据支撑和业务逻辑处理的就是后端,通过接口传输。当然前端也会做一些简单的业务处理,如:非空校验、输入长度限制等。


接口测试“高大上”?





为什么要做接口测试?



结合自身经验,总结如下:

1. 测试先行。在后端人员开发出接口后,我们就可以开始测试了,不需要等前端人员开发完,能提前发现并解决一些问题。

2. 一些前端页面操作发现不了的问题可以通过接口测试发现

3. 一些前端不好模拟的场景可以通过接口来快速完成,如:多个人同时抢一个红包

3. 检测异常处理能力

4. 检测系统的性能、安全性等

5. 相比UI自动化测试,接口自动化测试成本更低





接口测试难吗?



不难!之所以会觉得高大上,可能是因为它披了一层面纱。

万变不离其宗,做测试也是如此。任何一种类型的测试都需要先了解需求,熟知业务,然后梳理流程,整理测试点。核心思想有了,面纱揭开了,剩下的只是实现的手段了。

最后,附上一张前后端的请求流程图,加深下理解( 请忽视我蹩脚的画图技术)。


接口测试“高大上”?





未完待续




受限于经验和文笔,不对之处,欢迎留言指正



点个“在看”鼓励下吧


以上是关于接口测试“高大上”?的主要内容,如果未能解决你的问题,请参考以下文章

接口测试总结

接口测试总结

接口测试总结

史上最详细的接口测试

接口测试初探(流程,文档,工具,技术)

接口测试总结(转自猴子请来的救兵)