一、什么是接口
▲ 接口是非常抽象的概念,先来看下中国最大的综合性辞典《辞海》是怎样定义接口的:
两个不同系统或系统中两个不同特性部分的交接部分。一般分硬件接口和软件接口两种。前者是为连接计算机各部分之间、计算机与计算机之间、计算机与外部系统之间而专门设计的连接线及有关逻辑控制电路;后者是为连接两个程序层或块而专门设计的程序或数据格式。
从《辞海》对接口的定义来看,偏重于对信息技术中接口的抽象描述。其实接口有更为抽象的定义,接下来领略下维基百科中接口的定义:
接口(英语:interface)泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
看到这个解释,可能大家一脸懵逼了,太抽象了,太难理解了。要理解其意思需要先了解定义包含的两个概 念:实体与抽象化。实体是可以被人识别与区分独立存在的事物,既可以是物理存在的也可以是概念上的。抽象化是指以缩减一个概念或是一个现象的资讯含量来将其广义化(Generalization)的过程,主要是为了只保存和特定目的有关的资讯。简言之,接口是事物提供给其他事物使用的约定或者规范集。举个具体的例子,比如顾客去超市购物,顾客与超市之间是通过购物接口来完成交易的。超市约束顾客只要按照挑选商品然后付款的购物流程就可以完成整个购物过程,顾客并不需要了解商品怎么采购,怎么定价,怎么摆上货架等细节。采购渠道改变,价格调整等不会影响到用户的购物。
二、什么是接口测试
1. 特指脱离页面呈现,脱离页面调用是否正确,直接测试接口功能的一种测试类型,测试的重点是要检查数据的交换,传递的正确性。通常包括测试接口的参数检查、接口的参数传入及接口返回值是否正确,各接口间逻辑调用是否可以实现应用层功能。
2. 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程, 以及系统间的相互逻辑依赖关系等。
3. 接口是指系统模块与模块或系统与系统间进行交互,一般我们用的多的是HTTP协议的接口、Web Service协议的接口,还有RPC(Remote Procedure Call Protocol)远程过程调用协议的接口。不管是哪种接口,其本质就是发送一个request,然后服务器响应后返回一个response,然后我们对response进行分析,这即是接口测试。
三、接口测试的意义
1.更早的发现问题
随着敏捷测试的盛行,我们都知道测试工作要尽早的介入到项目开发周期中,因为越早的发现 bug,修复的成本就越低。
然而功能测试一般都要等到系统提供可测试的 UI 界面后才能进行,单元测试又要求较高的专业性和人力成本,所以选择接口测试来更早的介入测试。
接口测试可以在功能界面未开发出来之前对系统的接口进行测试,从而更早的发现总是并以更低的成本修复问题。
2. 缩短产品周期
接口测试更早的介入,可以更早的发现并解决 bug,从而使得留到后期功能测试阶段的 bug 数量减少,最终缩短整个项目的上线时间,有助于实现敏捷测试。
3. 发现更底层的问题
系统中的有些 bug 如果想通过 UI 层功能测试会比较困难,或者构造测试数据和测试条件非常复杂,而通过接口测试可以更简单、更全面的覆盖到底层的代码逻辑,从而发现一些隐藏 bug。
尤其是一些异常的、极端的情况,可以用接口测试很容易的验证。
4. 行业成熟的解决方案
接口测试实现起来比较简单,行业有很多成熟的接口自动化框架,并且大部分支持持续集成。
五、接口测试必备技能
1. 掌握网络基础知识与重要的网络协议,比如TCP/UDP协议、HTTP/HTTPS协议,了解RPC, Web Service及REST
2. 掌握Web开发的基础知识,理解Session、Cookie与token
3. 掌握常用的接口测试工具如curl命令,Postman,JMeter,LR,SoapUI等
4. 掌握基本的协议分析工具如Chrome Devtools,Fiddler,Charles,Wireshark,tcpdumps等
5. 掌握一门编程语言Python或Java
6. 了解Nginx, Apache, Tomcat等服务器中间件
7. 掌握关系数据库基本查询命令,及一些NoSQL(如Redis)操作,用于检查响应结果
8. 掌握基本的Linux日志查询和筛选命令
资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
关注我的微信公众号:【程序员小濠】即可获取这份资料了!
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:779450660 大家一起讨论交流,里面也有各种软件测试资料和技术交流。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。