接口(API)是一个简称,全名叫应用程序编程接口(Application Programming Interface),是一些预先定义的函数。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
工作中的接口如打电话的按键,电梯中的楼层按键,开车时脚踩油门,接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节,我们今天要讲的Web API就是这么一类东西。
例如百度搜索,它提供了搜索接口,简化了你的搜索任务
越底层发现bug,它的修复成本是越低的,接口属于金字塔模型 的中间层,属于收益产出比最高的
金字塔模型
前端随便变,接口测好了,后端不用变
检查系统的安全性,稳定性
系统复杂度上升,传统测试方法成本加大,效率降低,接口可以 解决这个问题
前后端框架分离,从安全层面说
只依赖前端进行验证已经不能满足安全的需求,因为绕过前 端太容易,要对接口做控制,做相应的校验
前后端传输,日志打印等信息是否加密传输也是需要验证的,特别是密码,身份证,银行卡信息等。
接口测试的原理是什么呢?
测试人员可以借助工具模拟客户端向服务器端发送请求报文,服务器端接收请求报文后,对相应的报文做出处理并向客户端返回应答,工具模拟客户端接收应答,然后测试人员检查应答是否准确,这就是接口测试的原理。
接口测试的范围有哪些呢?
关于接口的测试的范围,主要从以下两个方面进行介绍。
1、是否所有的接口都需要测试?
随着系统复杂度越来越高,接口越来越多,想完全覆盖所有接口是一件很困难的事情。
通常情况下,主要测试最外层的两类接口:数据进入系统的接口(调用外部系统的参数为本系统使用)和数据流出系统的接口(验证系统处理后的数据是否正常)
2、被测接口需要测试哪些方面?
测试人员需要关注被测接口的功能是否实现,性能是否达标,安全性是否满足,重点关注数据的交换,传递,处理次数以及控制管理的过程。
接口的分类?
依据所遵循协议的不同,常见接口可以分为以下三类。
HTTP接口,他是基于超文本传输协议开发的接口,但并不能排 除没有使用其他协议
WebService接口,他是系统对外的接口,比如你要从别的网站或服务器上获取资源,一般来说,别人不会把数据共享给你的,他们会提供一个他们写好的方法,让外部人员获取数据,从而达到数据同步的目的。
RESTful接口,简称REST其描述了一个架构样式的网络系统,核心是面向资源。REST专门针对网络应用设计和开发方式,降低开发的复杂性,提供系统的可伸缩性。
基于B/S架构的软件系统接口大多数为HTTP接口
接口测试流程?
1、编写接口测试计划
接口测试计划跟功能测试计划是一样的,都是为了确认是否满足需求,确定测试环境及测试计划,为设计测试用例做准备,一般来说,接口测试计划包含概述,测试资源,测试功能及重点,测试策略,测试风险及测试标准
2、编写,评审接口测试用例
根据需求文档,接口文档写测试用例,然后开发,测试一起评审测试用例是否符合需求和相关要求。下面的图里面的内容可以供大家写测试用例的时候参考。
3、执行接口测试
执行接口测试的时候,可以借助已经开发好的工具,如比较主流Jmeter,Postman,SoapUI,或者直接自己写代码进行相应的接口测试。
4、接口自动化测试持续集成
第一,流程方面,在回归阶段加强异常场景的覆盖,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。
第二,结果展示,更加丰富的结果展示,趋势分析,质量统计和分析等
第三,问题定位,报错信息,日志更精准,方便问题复现与定位
第四,结果校验,加强自动化校验能力,如数据库信息校验。
第五,代码覆盖率,不断尝试由目前的黑盒向白盒下探,提供代码覆盖率。
第六,性能需求,完善性能测试体系,通过自动化的手段监控接口性能指标是否正常
小编今天就介绍到这里,希望对你有所帮助,如果大家有什么补充的可以留言,互相探讨(^U^)ノ~Y
视频教学传送门:
阿里面试官:你说一下Python接口测试,这样回答让他竖起大拇指!