接口测试 接口自动化不是救命稻草

CKL的思考 · 2023年11月15日 · 最后由 云深不知处 回复于 2023年11月23日 · 7797 次阅读

接口自动化的内容写了很多了,本来以为没什么东西再聊。这两天和两个不同团队的测试负责人交流,发现大家对于接口自动化的落地还是很多疑问,接口自动化到底能不能在短期内帮助到团队呢?

01

它不是救命稻草

自动化并不是提升效率的万能药。很多团队开展接口自动化的初衷或者说期待是降本增效,这是没错的,但都忽略了一件事,那就是接口自动化的前期投入。接口自动化的效率提升,是需要在更长时间维度上体现的(个人认为这个接口自动化要能真实地产生效益,至少要有 3 个月的前期投入)。

如果你的团队现状是时间紧、任务重,但是项目的周期只有几个月,或者半年,那就堆人吧,搞什么自动化。引入接口自动化,所产生的效益在前期基本上是看不到的。你还要花费额外的人力去做场景梳理和脚本维护。

所以,接口自动化并不是紧急项目的救命稻草,特别是没有规范化的接口管理之前。

02

接口自动化的前期投入

对于想要开展接口自动化的团队,在真正落地到工具上之前,至少需要完成以下几个步骤:场景梳理、接口核对、用例编写、执行验证、扩大范围。

场景梳理:首先要花时间和精力去梳理哪些场景适合做接口自动化,核心场景、高频场景还是利益相关的场景,需要有人去梳理出完整的业务流程。在存量系统中,做单接口的测试意义不大,必须以场景用例为主。

接口核对:根据梳理出来的场景,和开发确认涉及的接口和参数。这是工作量最大、难度最高的投入。如果有规范化的接口文档,还好些,如果没有这类规范化的基础,仅通过抓包来分析,那投入的时间就更大了。

用例编写:基于前面两步,选择合适的工具反而是最简单的事了,现在不论是工具还是平台,对于接口测试的支持都非常友好,可供选择的范围也很多。

执行验证:先选 1~2 个场景,把脚本写好(前期可以不考虑过多的封装和规范),然后 Run 起来,看看场景和数据是否能够跑顺,跑通,数据是否真实落到系统当中去,当系统异常时,是否能发现问题。最常见的做法是:收回某些用户权限,或者删除某些关键数据,用例要能正常发现这些问题(所谓的用例有效性验证,只有这样,用例才是有效的。没有合适断言的自动化用例,没有任何意义)。

扩大范围:当前面的步骤都完成并验证可行后(看看这些前期的投入),再分场景或者模块给不同的人,把量补上来。

这里面的核心,还是对接口本身的了解程度,哪些场景会涉及哪些接口?这些接口参数的意义和来源是什么,要梳理清楚。而大部分团队其实是没有这部分能力的。盲目地开展接口自动化,只会流于形式。

03

作为团队的管理者,需要对接口自动化的投入成本和效果有比较好的认知,知道开展接口自动化需要准备些什么,能有什么收益。如果只是跟风开展,盲目追求覆盖率,认为有了接口自动化就能在短期内提升效率,那么大概率是做不好的。

技术没有捷径,技术也有成本

那么,在接口自动化的前期投入中,如何向上汇报成果呢?个人认为,最有价值的一点,就是通过梳理场景和接口,你会对业务和被测系统有更深入的了解,能够发现很多功能用例没有覆盖到的场景,以及,在分析接口的过程中,发现哪些不合理的接口设计,非常好玩,相信我。

共勉。
接口相关的文章,统一整理如下:
通过抓包能否做好接口测试
你是这么写接口的么
接口测试这么玩才明白
接口测试断言
你写的接口脚本合理么
接口测试平台演进思考

共收到 14 条回复 时间 点赞

流量回放会不会能更快速的呈现效果呢

Tester_谜城 回复

流量回放的技术成本更高,更加依赖基础设施。

项目基础还不牢固呢就开始搞接口自动化无异于高屋建瓴

好像你的大部分文章都有点公众号水文的既视感

测试新人 回复

水不水的,大家看着就好,不同水平的人本来知识结构就不一样。可能你懂的多,我的文章不就水了嘛。

不过确实是公众号同步过来的。

6楼 已删除

附议

目前我的项目基本上都是自动化,95% 以上。接口文档完整。
每次都全回归,然后才出包

但是项目的周期只有几个月,或者半年,那就堆人吧

这种是交付型项目吗?一般平台化产品,或者即便是交付型的也是长期维护,快速迭代,双周迭代这种。这两年真很少见到拉长到几个月或者几年的项目了。

接口自动化应该是最简单也是最容易看到效果的自动化了。当然也是不太适合放在汇报场合特别说了,基本能力。

恒温 回复

交付类的项目,给到工厂部署后,基本上就不会再动了,除非业务的工艺流程发生变化。

而且维护也交付给工厂的 IT 部门了,所以不太适合花时间去搞自动化。

chris 回复

接口文档完整 --这个基础就有很多团队做不到的。

在有完善的前置条件下,接口自动化当然适合开展,性价比也最高。

Tester_谜城 回复

回放可以快速出效果,但是应该不利于后期维护

能怎样带来价值 怎样做出有用的工作就行 接口自动化本就不是救命稻草

大胆点,可以说自动化从来不是。
对于接口自动化来说
1.一般项目肯定不会有或者持续维护的接口文档
2.在持续增量迭代过程中脚本不能及时同步最新接口信息导致漏测
3.抓取业务接口组装用例的形式也算 E2E 测试,脚本编写、分析、维护不比 UI 自动化成本低
4.接口用例无法模拟用户业务操作达到降本增效目标

关于 python 接口自动化,有什么比较不错的开源项目推荐吗?

CKL的思考 2023,悄然流逝,留下点什么 中提及了此贴 01月02日 09:52
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册