一、什么是接口测试
接口测试是项目测试的一部分,顾名思义,它测试的主要对象是接口,是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点。测试的重点是检查数据交互、传递、和控制管理过程以及系统间的相互依赖关系等。
二、接口测试的概念
三、接口测试的目的
接口测试 是测试接口,尤其是那些与系统相关联的外部接口。 接口测试 的核心战略在于:以保证系统的正确和稳定为核心,以持续集成为手段,提高测试效率,提升用户体验,降低产品研发成本。 质量管理的 目标是保证系统的正确和稳定, 接口测试 作为软件质量管理的一部分也保证系统正确和稳定,更准确地说是保证系统服务端的正确和稳定。
四、如何进行接口测试
(1)首先,明确出发点
和所有的测试一样,接口测试出发点是你要证明所测的程序是错误的。以这个出发点为导向,你的设计行为就会尽量朝这个方向发展,更易发现问题,不会出现大方向的偏差
其次,选择好测试对象
对于一个系统做接口测试选择好的测试对象是接口测试关键。一个系统有无数的接口,每个接口如果分别测试,那将是很痛苦的一件事情,不光繁琐浪费,而且任何一个内部接口的变动,都将导致我们用例的不可用。推荐把整个系统作为一个整体,选择整个系统提供给外部使用、交互的最外层接口作为测试对象,以此为测试对象的用例将有很好的健壮性,并且更高效。
(2)另外,根据数据的流向,又可将这些最外层的接口分为两类:一类是数据进入系统的接口;一类是数据流出系统的接口。进入系统的接口实际是我们用例的执行调用的接口。可通过变化参数对这些接口进行调用,模拟外部的使用;而流出的接口则是我们用例真正该验证的点。数据从哪里流出,流出时的状态如何,此时系统又是什么状态都是我们所应该验证的。
确认完整的测试对象的功能:确认外部接口提供给使用这些接口的外部用户什么样的功能,外部用户真正需要什么样的功能。此两个功能一定要准确详细,用例的设计要严格按照测试对象功能设计才是正确的用例。
(3)最后当出发点、对象、功能都确定了,就可以设计用例了。下面详细介绍下如何去设计一个结构好、可读性高、渗透性强的接口测试用例。
接口测试用例设计和其他测试用例设计一样,都应该本着尽可能的发现bug的目标。用例设计的内容应该包括:主要测试功能点、测试环境、测试数据、执行操作以及预期结果。
接口测试环境分为两种,一种是程序内部的环境;一种是程序的
(1)所调用外部接口的环境。
用例在设计环境上有一个原则即:设计真实而危险的环境,不忽视偶发环境。真实,即你的用例在测试某种功能时,应该去思考这种情况发生时内部、外部环境是什么,通过各种手段将最准确的环境模拟出来。危险,即在这种环境下系统出问题的概率会很大。在设计用例环境时,如果两种环境都能达到你本用例的要求,更推荐选择更危险的环境。所谓偶发,即这种环境出现的概率很小。不要因为这种环境很少出现就无视它,此处很有可能隐藏着问题。
(2)接口测试数据分为接口参数数据和用例执行所需系统数据。
数据的设计学问大,不要在设计、准备测试用例的数据上偷懒。要通过好的测试数据使用例查错的功能充分发挥。接口参数数据需对每个参数根据测试接口的实际的功能进行分析,在符合业务逻辑的情况下进行逻辑组合排列,不要遗漏了某些边界值和错误点的数据。每个用例执行所需系统数据和接口参数数据尽可能的采用不一样的数据,使用例更容易发现问题。
(3)测试功能点
如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例具有更好的可读性和维护性。接口划分原则为以接口提供的功能点的不同进行合适粒度的划分。同一功能点的用例又可根据测试环境的不同、数据的不同进行用例的填充。
(4)接口测试用例执行操作非常简单,就是所测接口的调用
预期结果验证,这也是接口用例设计的很关键的一步,应该细而不冗余。所谓细,用例中应详细列出应该验证的点。每个用例均需验证,不要因为前几个用例有验证就认为全部是正确的。避免一个用例中重复做相同的验证,提高测试用例的效率。
五、API接口的定义
应用程序接口(Application Programming Interface 简称API)在现代软件中随处可见,目的在于为某个组件的功能提供一个逻辑接口,同时隐藏该模块内部的实现细节。是对问题的抽象,以及客户与解决问题的软件组件之间进行交互的方式。总的来说:API是一个明确定义的接口,它可以为其它软件提供特定的服务。
比如读取图像的API可能仅仅提供一个LoadImage()函数,它接收一个文件名作为参数,然后返回一个2维像素数组,而所有文件格式和数据压缩的细节全部隐藏在这个看似简单的接口之下。客户端代码可以通过调用该API的公有接口。
六、内外部接口的调用
1.外部接口
对外部提供的接口(提供给第三方使用的接口)
例如:我们自己开发系统调用调用微信或支付宝支付接口,微信或支付宝供我们调用的接口为外部接口,外部接口需要覆盖各种正常和异常情况。
2.内部接口
对自身系统提供的接口(供系统内部调用的接口)
一般为了尽早的介入测试,所以一般接口开发完成测试人员就可以进行内部接口测试。一般大公司可能要求比较高,需要考虑安全问题,那么内部接口测试也是一定要测的。对于小公司都是不对内部接口进行测试的,直接在UI层测试即可。这样做的原因是为了防止攻击者会绕过前端的验证直接对接口进行攻击,那么后端接口的验证也是必不可少的。
七、接口测试的范围
(1)接口范围包括:
一、被测项目中同层之间的接口(如DAO层、Service层),一个接口调用了其他的接口
二、外部系统与系统之间的交互点(如一个App调用了第三方支付宝的API)
三、各个子系统之间的交互点(如App客户端调用了服务端的Http接口)
(2)被测接口范围:
接口很多,依据公司的测试资源,项目特点来进行对部分接口/全部接口进行筛选被测API。在一般的中小型公司里,第1类的接口是由相应的开发同学去做。测试同学主要是测试第2种
(3)接口测试的重点测试范围: 着重测试主要业务,业务复杂的接口
八、用jemter还是python编写接口自动化脚本
Jmeter是一个测试工具,而Python是一个脚本语言,这是两个范畴的概念,无法进行区别比对。简单来说可以这样理解
使用Jmeter可以通过人工的操作来进行接口测试的执行工作,我们暂且称为接口手工测试。这样的工作方式非常简单,在接口
测试工作量比较小的情况下,还是可行的,但是需要测试接口的数量非常多,一般来说超过20个以上,就不太适合再用工具
建议可以在接口基本已经稳定的情况下,使用python来编写自动化接口测试脚本来进行,可以大大提高测试工作的整体效能。
行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群:,里面有各种软件测试+开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!