什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之 间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过 程,以及系统间的相互逻辑依赖关系等。
为什么要做接口测试?
在软件测试的历史上,首先出现的是功能测试和性能测试,然后是自动化测试,但如今的系统架构纷繁复杂系统间的接口庞杂繁多,传统的功能测 试、性能测试和自动化测试已经难以满足系统发展的需求,迫切需要一种更加有效实用且可 以持续进行的测试方式来保证系统的质量。
接口测试在这种需求下应运而生。
首先,随着系统复杂程度的上升,传统的测试方法测试成本急剧增加,测试效率大幅下 降(数据模型推算,底层的一个bug能够引发上层的 8 个左右bug,而且底层的bug很容易引 起全网的宕机,相反接口测 试能够提供系统复杂度上升情况下的低成本高效率的解决方案。
其次接口测试不同于传统开发的单元测试,接口测试是站在用户的角度对系统接口进行 全面高效持续的检测。
最后接口测试是自动化并且持续集成的,这也是为什么接口测试能够低成本高收益的根 源。
总之接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益的驱动作用下 的最佳解决方案,接口测试是一个完整的体系,也包括功能测试、性能测试。
接口测试的适用范围?
接口测试一般应用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。 接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对 外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接 口,越往上层,其测试的难度越大。接口测试在淘宝的应用是一个自下而上的发展过程。 接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比。
接口测试天生为 高复杂性的平台带来高效的缺陷检测和质量监督能力。平台越复杂,系统越庞大,接口测试 的效果越明显。
接口测试的需求分析
几乎所有软件活动都是以需求分析开始的,接口测试也是如此。在本阶段我们有两个任 务:一是充分理解需求,并保证所有人对需求的理解一致;二是尽可能找出需求本身所存在的问题。
需求分析之后,紧接着就应该进入系统设计阶段了。系统设计不应该仅仅只是系统设计 师或者开发人员的事情,作为接口测试人员,应该可以从测试的角度为系统的设计提供一些 方案或者建议,优化设计的同时提高系统的可测性。
系统设计评审之后,系统实现所需要使用到的技术都应该已经选定。在这个阶段,接口 测试人员就需要根据系统设计来选定自己的测试框架和要使用到的技术。当然,这并不是必 须的,如果你所测试的项目和之前已经测试过的项目技术架构都差不多的话,那么你可以沿 用之前的测试框架和技术,或者在这个基础上稍加调整。如果所测试的项目采用的是一种不 同的技术架构,那么你就需要仔细考虑如何选定与之相适应的测试框架和技术。
接口测试框架和技术的选型有很多因素,原则就是选择一个能满足你的测试需要的最好 用的框架和技术,并且尽量是你的项目成员都比较熟悉的框架和技术。没有必要单纯为了提 高测试的技术含量而选用功能奇多但却复杂难懂的工具来使用。我所使用框架是Python 的Django Unittest 其中的核心是Python的Request
接口测试的用例设计
接口测试的测试用例设计是以接口为单位来设计测试,在设计的过程中我们重点关注的 是接口有哪些可能的输入参数和预期的输出结果是什么,具体参考需求文档
接口自动化的实现
分五个模块来实现
项目管理块:该模块的主要是方便进行项目管理
模块管理:该模块主要是为了方便对项目下的不同模块进行管理
用例管理:编写测试用例的地方
测试报告:查看测试报告的模块
测试工具:对接口返回的json进行格式化
原理:对接口返回的数据进行断言,当实际结果和预期结果一致时此接口的执行结果为成功,反之为失败
下面演示添加一个用例的过程:
第一步:添加一个项目
添加完后如图所示:
第二步:添加一个模块,并选择所属项目
添加完如图所示:
下一步:添加用例
包括用例名称,所属项目,所属模块,请求的url ,请求的方式,header 和参数根据所测接口的实际情况情况填写
例如我去访问百度
添加完后如图所示:
然后点击启动按钮即可
在测试报告中可查看case的运行情况
测试工具模块使用