对接口测试的一些思考
模型
我们在接口测试理论阶段,可能接触过金字塔模型:
通过之前对金字塔结构的学习,大概了解到了金字塔模型想告诉我们的几个道理:
1. 越底层,越稳定。
金字塔主要观点认为单元测试的稳定性高,需要多投入。
2. 越底层,越高效。
程序的问题,最终还得落在具体的代码上,所以底层的测试更容易发现问题。
3. 越底层,越低成本。
越底层测试能越早发现问题,越早发现问题,修复的成本自然越低。
4. 越底层,越难实施。
越底层的实现对技术专业性要求越高,这点跟第三点有点矛盾,往往越专业的人才也意味着人力成本越高。
综合下金字塔模型,其实还有一个橄榄模型(不倒翁模型),拿接口测试和UI层测试以及单元测试做了比较,最终认定接口(API)测试可以获得较高的投资回报。
什么是接口(API)
API全称Application Programming Interface
,这里面我们其实不用去关注AP
,只需要I
上就可以。一个API就是一个Interface。我们无时不刻不在使用interfaces。我们乘坐电梯里面的按钮是一个interface。我们开车一个踩油门它也是一个interface。我们计算机操作系统也是有很多的接口。(这是目前个人找到比较好理解的一段解释)
接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。像谷歌搜索,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。
什么是接口测试和为什么要做接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。
结合业务的一些思考
曾经针对手机QQ小程序在做接口测试。这其实也是我对接口测试第一次真正实践。之前虽然学了很多理论,但是真正用于实战,也遇到了不少困难。按照自己对业务需求的理解,我认为接口测试需要分两个阶段:冒烟阶段与参数阶段。
1.冒烟阶段
以接口层为界限,由开发编写接口的底层实现,而测试人员负责编写调用接口的程序,当联调时,如果测试程序表现正常,说明冒烟测试阶段是成功的。
2.参数阶段
冒烟阶段是一个概括性的测试阶段,不可能完全精确,所以下一步就要进行参数级别的覆盖,要针对每个接口进行抓包,对其中的请求参数与返回参数的类型、值、边界范围等进行沟通。