之前有同事问我,为什么你那么 High,总是有时间出去玩。实际上了解我的人应该知道,平时上班的时候我几乎不休假,除非有重要的事情需要去处理。所以当我我觉得需求休息的时候,基本上我都是连续请几天假,然后安排一次小环线自驾。就如到新公司快半年了,一个小时的假都没有休过。所以就会造成我经常出去玩的一个假象,实际上是我只要休息就会出去转转而已。实际上也是自律的一种表现。
好了,今天我们要讲的是接口自动化。实际上开展这项工作之前,我一直不敢对这个领域下手。原因在于移动互联网产品对于接口的依赖,而自组织的平台能够对接口提供多少支持,我心里没底。是否可以取代常规的 RF、Jmeter、Postman 或者直接通过脚本实现的接口测试。直到有一天,测试部的王大爷和霍 Sir 给了我很好的建议和支持,他们的理念是平台只针对接口的健壮性提供常规的验证,而接口逻辑层面的功能,应该还是交给 RF 之类的专业工具来实现,平台可以另外提供执行和跟进的功能。
对于接口健壮性层面,王大爷提供了框架可以根据接口的 header、data 规则,通过边界值、等价类划分等方法生成接口的常规测试点。关于框架是如何实现的,我这里不做介绍,希望后面看到王大爷精彩的分享。下面我们介绍代码层面的实现和逻辑。

Form

接口用例

测试计划


View

新增执行按钮

生成测试 Instance

逻辑删除

返回只有权限的测试计划或用例

手动执行测试用例或计划

Controller

生成 Instance

这个模块是小琳对接的,逻辑比较复杂,这里只截取记录到数据库的部分。
大概的业务逻辑就是根据测试用例里面对请求头和请求负载的限制描述,在这里调用生成 Instance 的过程。

执行 instance

只列出部分代码,这里大概的执行逻辑就是,不管是任务自动触发还是手动执行,都会走到这里的逻辑。然后根据 instance 里面的接口 headers、data、url 做请求处理。
然后存入到数据库里面。

Demo

测试用例

测试计划

测试结果

详细报告那里就不打开了,太丑了。需要我们团队的成员来优化,今天就写到这里。感谢大家的耐心阅读,下次将介绍 Mock 的实现。


↙↙↙阅读原文可查看相关链接,并与作者交流